블로그 이미지
평범하게 살고 싶은 월급쟁이 기술적인 토론 환영합니다.같이 이야기 하고 싶으시면 부담 말고 연락주세요:이메일-bwcho75골뱅이지메일 닷컴. 조대협


Archive»


 
 


초경량 Python 웹서버 bottle

MVC 예제


Controller 파일 구현 

/controller.py

import bottle

 

mythings = ['apple','orange','banana','peach']

 

@bottle.route('/')

def home_page():

    fruit = bottle.request.get_cookie("fruit")

    return bottle.template("hello_world",username="Andrew",things=mythings,like=fruit)

               

@bottle.post('/favorite_fruits')

def favorite_fruits():

    fruit = bottle.request.forms.get('fruit')

    if(fruit == None or fruit==""):

        fruit="No Fruit Selected"

    bottle.response.set_cookie('fruit',fruit)

    return bottle.template("fruit.tpl",{'fruit':fruit})

 

bottle.debug(True)

bottle.run(host='localhost',port=8080)


 

TBL 파일들은 템플릿으로, Python 변수는 {{ }}로 표현 (cf. jsp에서 <%=xx %>)

파이썬 로직은 %로 표현 (cf. jsp에서 <% %>)


/hello_world.tpl

<html>

<body>

Welcome {{username}}<br/>

You like <b>{{like}}</b>

<p>

<ul>

%for thing in things:

<li>{{thing}}</li>

%end

</ul>

<form action="/favorite_fruits" method=POST>

    What fruit do you like ?

    <input type="text" name="fruit" size=20 value="">

    <input type="submit" value="submit">

</form>

</body>

</html>


/fruit.tpl

<body>

Your like {{fruit}}

</body> 


실행 예




 



Bottle은 Python 기반의 초경량 웹서버이다.

Python 쪽에서는 Django등을 많이 사용하고 있지만, 설치도 쉽고, 가볍고 해서, 특정 목적이나 가벼운 테스트 웹 애플리케이션 개발등에는 충분히 활용이 가능하다.

(자바의 Jetty 와 같은 느낌?)


1. easy_installer에 설치

먼저 bottle을 설치하려면, installer부터 설치하는 것이 수월하다. python은 linux의 yum이나 rpm , 또는 Java의 maven과 유사하게 Pypi(Python Package Index - https://pypi.python.org/pypi ) 라는 툴을 제공한다. 


먼저 https://pypi.python.org/pypi/setuptools#windows 에서 ez_setup.py를 다운로드 받아서 실행한다



실행이 끝나면 ${Python 설치디렉토리}/Scripts/easy_install.exe 가 설치 된다.


2. bottle 설치

easy_install bottle 을 실행하면 bottle 라이브러리가 설치된다.



3. 간단한 애플리케이션 제작

bottle이 설치되었으면 간단한 애플리케이션을 만들어보자

아래 hello_world.py


import bottle

 

@bottle.route('/')

def home_page():

    return "hello world\n"

 

@bottle.route('/testpage')

def test_page():

    return "this is test page"

 

bottle.debug(True)

bottle.run(host='localhost',port=8080)


4. 실행

%python hello_world.py



다음으로 브라우져에서 http://localhost:8080/testpage 로 접근하면 다음과 같은 결과를 얻을 수 있다.