科技
2010­08­17 00:37:14该教程向你介绍了
今日
本周
本月
热门评论
能源年代的來臨
【聚合翻译】影史上最佳科幻特效懦弱的蔡美儿
影史上最佳科幻特效(5­8)
卢梭著《社会契约论》第一章第五节  论始终要追溯至最初的约定
【一分钟科普】医学承诺仍然常常无法兑现柳叶刀:医学预言仍未实现人口百万的村庄美元人民共和国
14岁少年编写的iPhone 游戏“泡泡球”击败“愤怒的小鸟”跃居榜首
十大热门文章
14岁少年编写的iPhone 游戏“泡泡球”击败“愤怒的小鸟”跃居榜首
相比金钱和性,年轻人更看重自我肯定上有政策,下有对策:身份证件伪造VS 弓箭­­­欧洲战争
DownThemAll :我们还不会支持Google Chrome 在Ubuntu 系统下安装Microsoft Office 2007
3. 生成内容3.0.1. 改变默认编码3.1. 静态文件
3.2. HTTP 错误和重定向3.2.1. 其它异常3.3. Response 对象3.3.1. 状态码3.3.2. 响应头信息3.
4. Cookies
3.4.1. 安全的 Cookies 4. 访问请求数据4.1. HTTP 头信息4.2. Cookies 4.3. 查询字符串
4.4. POST 表单数据和文件上传4.
5. WSGI 环境5. 模板5.1. 语法5.2. 缓存
6. 开发6.1. 调试模式6.2. 自动重载
7. 部署server error翻译
7.1. 多线程的服务器7.2. 多个服务器进程7.3. 使用 WSGI 和中间件7.4. Apache mod_wsgi
@route('/hello')# ②
def hello():# ③
return '你好世界!'# ④
run(host = 'localhost', port = 8080)# ⑤
这会发生什么呢?
① 首先,我们导入一些 bottle 组件。route() 修饰器和 run() 函数。
② route() 修饰器被用来绑定一块代码到一个 URL。在这个例子中,我们想要回答来自 /hello U
RL 的请求。
③ 该函数是处理函数或是对 /hello 路由进行回调。每次对 /hello URL 的请求都会调用它,并且
响应生成页面内容。
④ 在这个例子中,我们简单地返回一个字符串到浏览器。
⑤ 现在,是启动实际的 HTTP 服务器的时候了。默认是一个开发服务器运行在“localhost”的 808
0 端口,并且在你点击 Control+C 之前一直会服务请求。
就是这样。运行该脚本,访问 localhost:8080/hello,你将在浏览器中看到“你好世界”。当然,这是一个非常简单的例子,但它展示了如何使用 bottle 来建立应用程序的基本概念。
1.1. 应用程序对象
几个函数和修饰器如 route() 或 run() 依靠一个全局应用程序对象来存储路由、回调和配置。这让写一个小的应用程序变得简单,但在更多复杂情景中会导致问题。如果你喜欢一个更加明确的方式来定义你的应用程序,并且不介意额外的输入,你可以创建你自己的隐含应用程序对象,并使用以替代全局那个:
from bottle import Bottle, run
myapp = Bottle()
@ute('/hello')
wiki/Page_Title。为什么?因为 URIs 是不会改变的。让我们为最后的例子添加一个 :name 通配符:
@route('/hello/:name')
def hello(name)
return '你好 %s' % name
该动态路由将匹配 /hello/alice 以及 /hello/bob。每个 URL 的片段都由一个通配符覆盖,并将通配符作为一个关键字参数传递给回调函数,因此你可以在你的应用程序中使用该信息。
正常的通配符匹配下一个斜线后面的所有东西。你可以添加一个正则表达式来改变它:
@route('/object/:id#[0­9]+#')
def view_object(id):
return '对象 ID: %d' % int(id)
正如你所见到的,关键字参数包含一个字符串,即使如果通配符被配置为只匹配数字。如果你需要,你必须明确地将它转换为整数。
2.2. HTTP 请求方法
HTTP 协议为不同的任务定义了几个请求方法(有时也被称为“动词”)。在没有指定其它方法的时候,GET 是所有路由默认的方法。这些路由只会匹配 GET 请求。要处理其它如 POST、PUT 或 DELETE 方法,你可以给 route() 修饰器添加一个 method 关键字参数,或者使用下面的 4 个修饰器之一:get()、post()、put() 或 delete()。
POST 方法通常被用在 HTML 表单提交。该例子展示了如何使用 POST 来处理一个登录表单:from bottle import get, post, request
# @route('/login')

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。