보틀: 파이썬 웹 프레임워크

보틀(Bottle)은 빠르고 단순하며 경량인 파이썬WSGI 마이크로 웹 프레임워크다. 한 파일로 된 모듈로 배포되며 파이썬 표준 라이브러리 외에 다른 의존성이 없다.

  • 라우팅: 요청을 함수 호출로 연결해 준다. 단순한 URL과 동적인 URL을 지원한다.

  • 템플릿: 빠르고 파이썬스러운 내장 템플릿 엔진이 있으며 mako, jinja2, cheetah 템플릿을 지원한다.

  • 유틸리티: 폼 데이터, 파일 업로드, 쿠키, 헤더, 기타 HTTP 관련 메타데이터에 편리하게 접근할 수 있다.

  • 서버: 개발용 HTTP 서버가 내장돼 있으며 paste, fapws3, bjoern, 구글 앱 엔진, cherrypy, 기타 WSGI 지원 HTTP 서버와 쓸 수 있다.

예시: 보틀에서 “Hello World”

from bottle import route, run, template

@route('/hello/<name>')
def index(name):
    return template('<b>Hello {{name}}</b>!', name=name)

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

이 스크립트를 실행하거나 파이썬 콘솔에 붙여 넣은 다음 브라우저로 http://localhost:8080/hello/world 주소를 열어 보자. 이게 전부다.

내려받아 설치하기

PyPI를 통해 (easy_install -U bottle) 최신 안정 버전을 설치하거나 bottle.py 파일(불안정 버전)을 프로젝트 디렉터리로 내려받으면 된다. 파이썬 표준 라이브러리 외 모듈에 대한 필수 의존성이 전혀 없다 1. 보틀은 파이썬 2.5+ 및 3.x에서 돈다.

사용자 안내서

웹 개발에 보틀 프레임워크를 이용하는 방법을 배우고 싶다면 여기서 시작하면 된다. 여기서 답을 얻지 못한 질문이 있다면 메일링 리스트에서 마음껏 물어 보면 된다.

지식 베이스

글, 지침, 하우투 모음.

개발 및 기여

보틀 개발 및 릴리스 절차에 관심 있는 개발자들을 위한 장이다.

라이선스

MIT 라이선스에 따라 코드와 문서를 사용할 수 있다.

Copyright (c) 2012, Marcel Hellkamp.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

하지만 보틀 로고는 그 라이선스에 포함되지 않는다. 보틀 홈페이지에 대한 링크로 쓰거나 변경 안 된 라이브러리와 함께 직접 사용하는 건 허용된다. 그 외 경우에는 먼저 확인을 구하길 바란다.

각주

1

템플릿이나 서버 어댑터 클래스 사용을 위해선 당연히 해당 템플릿이나 서버 모듈이 필요하다.