Bottle - Python Web Microframework (english)

26
Python Web Microframework Markus Zapke-Gründemann RuPy 2009

description

Lighting talk held at RuPy 2009.

Transcript of Bottle - Python Web Microframework (english)

Page 1: Bottle - Python Web Microframework (english)

Python Web Microframework

Markus Zapke-GründemannRuPy 2009

Page 2: Bottle - Python Web Microframework (english)
Page 3: Bottle - Python Web Microframework (english)

Web Microframework

Page 4: Bottle - Python Web Microframework (english)

Python 2.5 or 3.x

Page 5: Bottle - Python Web Microframework (english)

WSGI(Web Server Gateway Interface)

Page 6: Bottle - Python Web Microframework (english)

Google AppEngine

Page 7: Bottle - Python Web Microframework (english)

Routing

Page 8: Bottle - Python Web Microframework (english)

POST, GET, PUT, DELETE, HEAD

Page 9: Bottle - Python Web Microframework (english)

Cookies

Page 10: Bottle - Python Web Microframework (english)

Templates

Page 11: Bottle - Python Web Microframework (english)

Simple Validators

Page 12: Bottle - Python Web Microframework (english)

Key/Value Database

Page 13: Bottle - Python Web Microframework (english)

JSON

Page 14: Bottle - Python Web Microframework (english)

1 File1228 Lines40019 Byte

Page 15: Bottle - Python Web Microframework (english)

MIT License

Page 16: Bottle - Python Web Microframework (english)

GitHub

Page 17: Bottle - Python Web Microframework (english)

bottle.paws.de

Page 18: Bottle - Python Web Microframework (english)

1 from bottle import route, run 2 3 @route('/') 4 def index(): 5 return 'Hello World!' 6 7 run()

Example 1

Page 19: Bottle - Python Web Microframework (english)

1 from bottle import route, run 2 3 @route('/hello/:name') 4 def index(name): 5 return 'Hello %s!' % name 6 7 run()

Example 2

Page 20: Bottle - Python Web Microframework (english)

1 from bottle import route, run, send_file 2 3 @route('/static/:filename') 4 def static_file(filename): 5 send_file(filename, root='/path/to/static/files') 6 7 run()

Example 3

Page 21: Bottle - Python Web Microframework (english)

1 from bottle import route, run, send_file 2 3 @route(r'/static/(?P<filename>.*)') 4 def static_file(filename): 5 send_file(filename, root='/path/to/static/files') 6 7 run()

Example 4

Page 22: Bottle - Python Web Microframework (english)

1 <html> 2 <head> 3 <title>Welcome!</title> 4 </head> 5 <body> 6 <h1>Welcome!</h1> 7 %for name in names: 8 <p>Hello {{name}}!</p> 9 %end 10 </body> 11 </html>

Example 5 1 from bottle import route, run, template 2 3 @route('/welcome/:names') 4 def welcome(names): 5 names = names.split(',') 6 return template('welcome', names=names) 7 8 run()

Page 23: Bottle - Python Web Microframework (english)

1 from bottle import request, route, run 2 3 @route('/user-agent') 4 def user_agent(): 5 return request.environ.get('HTTP_USER_AGENT') 6 7 run()

Example 6

Page 24: Bottle - Python Web Microframework (english)

1 from bottle import route, run 2 3 @route(r'/get_object/(?P<id>[0-9]+)') 4 def get_id(id): 5 return "Object ID: %d" % int(id) 6 7 @route(r'/get_object/(?P<slug>[-\w]+)') 8 def get_slug(slug): 9 return "Slug: %s" % slug 10 11 run()

Example 7

Page 25: Bottle - Python Web Microframework (english)

1 from bottle import route, run, validate 2 3 @route('/validate/:id/:price/:csv') 4 @validate(id=int, price=float, csv=lambda x: map(int, x.split(','))) 5 def validate_args(id, price, csv): 6 return "Id: %d, Price: %f, List: %s" % (id, price, repr(csv)) 7 8 run()

Example 8

Page 26: Bottle - Python Web Microframework (english)

License

This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License.

To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/

or send a letter to Creative Commons, 171 Second Street, Suite 300,

San Francisco, California, 94105, USA.