2012年12月11日星期二

python web框架bottle

bottle是一个python WSGI框架,简单的一个py文件,集成了router、redirect、template,request/response获取与设定等功能,下面介绍其基本使用方法。

先import相关方法,并声明Bottle对象:

from bottle import Bottle, jinja2_template as template, static_file, redirect, request, response, run
app = Bottle()

Router
利用python的decorator方法,可以声明多个URL对应一个处理函数:

@app.get('/')
@app.get('/index')
def index():
  return 'Hello bottle!'

template
template用于将后台代码与前端代码分离,增加后台代码重用:

@app.get('/login')
def login():
   return template("login.html", handler=get_site_info())

@app.post('/login')
def login_post():
   return UserService.login()

redirect
bottle提供了redirect方法用于页面跳转,如登出后跳转到登录页面:

@app.get('/log-out')
 def log_out():
   UserService.log_out()
   redirect('/login', 302)

request/response
bottle提供了request和response对象,通过这两个对象,可方便地操作请求与响应数据:

@app.get('/admin')
 def admin():
   _status = request.query.get('status', None)
   response.set_cookie('status', _status)

static_file
网页包含html、js、图片等静态内容,处理这些静态内容的请求,我们不需要编写专门的router处理,只需要将静态内容放到一个文件夹下,利用如下一段代码,即可处理所有static文件请求:

@app.get('/static/<filename:re:.*')
 def server_static_file(filename):
   return static_file(filename, root='./static/')

最后,使用run方法让我们后台服务跑起来:
run(app, host='localhost', port=8080)

Have fun!

没有评论:

发表评论