- Routing: Requests to function-call mapping with support for clean and dynamic URLs.
- Templates: Fast and pythonic built-in template engine and support for mako, jinja2 andcheetah templates.
- Utilities: Convenient access to form data, file uploads, cookies, headers and other HTTP related metadata.
- Server: Built-in HTTP development server and support for paste, fapws3, bjoern, Google App Engine, cherrypy or any other WSGI capable HTTP server.
Example: “Hello World” in a bottle
from bottle import route, run @route('/hello/:name') def index(name='World'): return '<b>Hello %s!</b>' % name run(host='localhost', port=8080)
Run this script or paste it into a python console, then point your browser tohttp://localhost:8080/hello/world. Thats it.
Download and Install
Install the latest stable release via PyPi (easy_install -U bottle) or download bottle.py(unstable) into your project directory. There are no hard  dependencies other than the Python standard library. Bottle runs with Python 2.5+ and 3.x (using 2to3)
Start here if you want to learn how to use the bottle framework for web development. If you have any questions not answered here, feel free to ask the mailing list.
- Request Routing
- SimpleTemplate Engine
- API Reference
- List of available Plugins
A collection of articles, guides and HOWTOs.
- Tutorial: Todo-List Application
- Primer to Asynchronous Applications
- Frequently Asked Questions
Development and Contribution
These chapters are intended for developers interested in the bottle development and release workflow.
- Release Notes and Changelog
- Developer Notes
- Plugin Development Guide