Bottle

Bottle是一个快速、简洁、轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其他模块。

1 pip install bottle
2 easy_install bottle
3 apt-get install python-bottle
4 wget http://bottlepy.org/bottle.py

Bottle框架大致可以分为以下部分:

  • 路由系统,将不同请求交由指定函数处理
  • 模板系统,将模板中的特殊语法渲染成字符串,值得一说的是Bottle的模板引擎可以任意指定:Bottle内置模板、makojinja2cheetah
  • 公共组件,用于提供处理请求相关的信息,如:表单数据、cookies、请求头等
  • 服务,Bottle默认支持多种基于WSGI的服务,如:
 1 server_names = {
 2     ‘cgi‘: CGIServer,
 3     ‘flup‘: FlupFCGIServer,
 4     ‘wsgiref‘: WSGIRefServer,
 5     ‘waitress‘: WaitressServer,
 6     ‘cherrypy‘: CherryPyServer,
 7     ‘paste‘: PasteServer,
 8     ‘fapws3‘: FapwsServer,
 9     ‘tornado‘: TornadoServer,
10     ‘gae‘: AppEngineServer,
11     ‘twisted‘: TwistedServer,
12     ‘diesel‘: DieselServer,
13     ‘meinheld‘: MeinheldServer,
14     ‘gunicorn‘: GunicornServer,
15     ‘eventlet‘: EventletServer,
16     ‘gevent‘: GeventServer,
17     ‘geventSocketIO‘:GeventSocketIOServer,
18     ‘rocket‘: RocketServer,
19     ‘bjoern‘ : BjoernServer,
20     ‘auto‘: AutoServer,
21 }

框架的基本使用

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 from bottle import template, Bottle
 4 root = Bottle()
 5
 6 @root.route(‘/hello/‘)
 7 def index():
 8     return "Hello World"
 9     # return template(‘<b>Hello {{name}}</b>!‘, name="Alex")
10
11 root.run(host=‘localhost‘, port=8080)

一、路由系统

路由系统是的url对应指定函数,当用户请求某个url时,就由指定函数处理当前请求,对于Bottle的路由系统可以分为一下几类:

  • 静态路由
  • 动态路由
  • 请求方法路由
  • 二级路由

1、静态路由

1 @root.route(‘/hello/‘)
2 def index():
3     return template(‘<b>Hello {{name}}</b>!‘, name="Alex")

2、动态路由

 1 @root.route(‘/wiki/<pagename>‘)
 2 def callback(pagename):
 3     ...
 4
 5 @root.route(‘/object/<id:int>‘)
 6 def callback(id):
 7     ...
 8
 9 @root.route(‘/show/<name:re:[a-z]+>‘)
10 def callback(name):
11     ...
12
13 @root.route(‘/static/<path:path>‘)
14 def callback(path):
15     return static_file(path, root=‘static‘)

3、请求方法路由

 1 @root.route(‘/hello/‘, method=‘POST‘)
 2 def index():
 3     ...
 4
 5 @root.get(‘/hello/‘)
 6 def index():
 7     ...
 8
 9 @root.post(‘/hello/‘)
10 def index():
11     ...
12
13 @root.put(‘/hello/‘)
14 def index():
15     ...
16
17 @root.delete(‘/hello/‘)
18 def index():
19     ...
时间: 2024-10-18 00:42:27

Bottle的相关文章

web框架--bottle

安装 bottle框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其他模块 1 2 3 4 pip install bottle easy_install bottle apt-get install python-bottle wget http://bottlepy.org/bottle.py bottle介绍 Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架 Bottle框架大致可以分为以下部分: 路由系统,将不同请求交由指定函数处理 模板系统,将模板

bottle框架学习(七)之session的使用

Bottle 自身并没有提供Session的支持,,可以使用beaker中间件或自己实现.Beaker是一个缓存和会话的库,与Web 应用程序和独立的Python 脚本及应用程序一起使用.它是WSGI 的中间件,能够很简单地嵌入,与基于 WSGI 的 Web 应用程序一起使用,并且缓存修饰器对于任何基于 Python 的应用程序都是容易使用的. beaker文档:http://beaker.readthedocs.org/en/latest/index.html 安装beaker [[email

URAL 1326. Bottle Taps(简单的状压dp)

题目不太好读懂,就是先给你一个n代表要从n个物品中买东西,然后告诉你这n个东西的单价,在给你m个集合的情况,就是每个结合中有x件物品,他们合起来买的价格是k.这x件物品依次是:p1--px.之后给你一个kk,表示你要买的物品的编号.让你求出来如何花费最少的钱买到要求的序列. 20,可以状压啊,注意一开始的时候先把单价的状态处理出来...之后就是水题了啊. 1326. Bottle Taps Time limit: 3.0 second Memory limit: 64 MB Programmer

Bottle 中文文档

译者: smallfish ([email protected]) 更新日期: 2009-09-25 原文地址: http://bottle.paws.de/page/docs (已失效) 译文地址: http://pynotes.appspot.com/static/bottle/docs.htm (需翻墙) 这份文档会不断更新. 如果在文档里没有找到答案,请在版本跟踪中提出 issue. 基本映射 映射使用在根据不同 URLs 请求来产生相对应的返回内容. Bottle 使用 route()

Bottle 框架源码学习 三

def run(app=None, server='wsgiref', host='127.0.0.1', port=8080,         interval=1, reloader=False, quiet=False, plugins=None,         debug=None, **kargs): 今天要学习一下bottle里是怎样打印debug信息的 run函数的倒数第二个参数是debug,默认为None try:     if debug is not None: _debu

详解Bottle模板

今天和大家分享一下自己在学习Bottle框架的过程中总结的关于模板的知识点,希望对大家有帮助. Bottle 使用自带的小巧的模板. 你可以使用调用 template(template_name, **template_arguments) 并返回结果. @route('/hello/:name')def hello(name): return template('hello_template', username=name) 这样就会加载 hello_template.tpl,并提取 URL:

Bottle?中的基本映射和动态映射

这篇Bottle 教程是比较基础的,主要讲解Bottle?的基本映射和动态映射. 基本映射 映射使用在根据不同 URLs 请求来产生相对应的返回内容. Bottle 使用 route() 修饰器来实现映射. from bottle import route, [email protected]('/hello')def hello(): return "Hello World!" run() # This starts the HTTP server 运行这个程序,访问 http://

bottle框架学习(八)之Mysql数据库的操作

MySQLdb 是用于Python连接Mysql数据库的接口. 安装MySQLdb [[email protected] bottle]# yum install MySQL-python –y 如果使用编译安装请到这里下载安装包https://pypi.python.org/pypi/MySQL-python并执行以下命令 [[email protected] bottle]# gunzip  MySQL-python-1.2.3.tar.gz [[email protected] bottl

bottle框架学习(二)之HTTP请求

HTTP 请求方法 HTTP 协议有很多种请求方法.route默认使用GET方法,只响应GET请求.method参数可以给route()函数指定使用哪种方法.或用get(),post(),put()或delete()等函数来代替route()函数. POST 方法一般用于HTML 表单的提交.下面是一个使用POST 来实现用户登录的例子: [[email protected]]# cat login.py #!/usr/bin/envpython #coding=utf-8 from bottl

bottle框架学习(三)之模版的使用

模板的基本使用 Bottle内置了一个快速强大的模板引擎,称为SimpleTemplate模板引擎.可通过template() 函 数或view()修饰器来渲染一个模板.只需提供模板的名字和传递给模板的变量.如下: [[email protected]]# tree . . ├── templ.py └── views └── hello.tpl 1directories, 2files [[email protected]]# cat templ.py  #!/usr/bin/envpytho