RWPy4learner 11.3.30 documentation

Version: 11.3.30

初窥Bottle

目标回顾

小白想让自己的通讯录在自家电脑、学校电脑和手机上都能同步数据,于是就想做成一个网站,来存放自己的通讯录。

小白用bing查了一下”python web”,蹦一下跳出好多:

  • Python Web 框架,第 1 部分: 使用 Django 和 Python 开发 Web 站点
  • [Python]web.py的简介

点进去一看,原来django和web.py都是“框架”。小白仔细读了一下搜索结果,发现除了django, web.py外,Python还有许多框架,如, bottle, tornado, flask等。python这么多框架,应该选什么框架呢?

选择框架

小白往后翻了几页,又发现了一个关键字“wsgi”。

再查找“python wsgi”,找到了一个wsgi的简单示范

那么wsgi应该就是一种协议,我把代码写成这个样子,用上他的模块、函数、方法,就能发布咯!

不过小白看到这句:

status = '200 OK'

惊呼:虽然不知道是什么意思,但一看“OK”就知道这个函数是正常情况下显示什么内容,但是异常情况应该更多。 这里是200,那么404、403、500、505……总之1到n的都要自己写?

手工写wsgi?太麻烦……

于是,大牛们做了一大堆零件,让你来“拼”一个web程序

小白看到这句:

成熟的web框架应该有:基本HTTP请求处理、GET或POST数据的接受、模板、数据库、session等功能。

晕倒,这些都是什么东西啊?不过这样看来,框架的内容还是很丰富的,基本上是有什么直接调用就好了。

坊间传说,很酷的框架bottle,速度超快,超级轻巧,拥有一系列高级功能。小白顺藤摸瓜,找到了bottle的老巢——http://bottlepy.org/,小白看到:

Bottle is a fast, simple and lightweight WSGI micro web-framework for Python.

Bottle是一个快速,简单又轻量的Python的WSGI迷你web框架……真的?

看到了bottle这些优点,小白有些心动。他决定用bottle框架来开发网页版本的通讯录。

安装Bottle 框架

在正式学习Bottle之前,首要任务就是安装Bottle。在学习网站开发前,小白已经有了比较丰富的python开发经验。安装一个Python的第三方库很简单。只用easy_install 加上框架名就可以了。

安装一个先。:

easy_install bottle

亦或直接下载代码:

https://github.com/defnull/bottle/raw/master/bottle.py

安装完Bottle后,小白发现,Bottle的源代码只有一个文件,两千多行。这么小的框架,应该很容易学习吧。 Bottle果然轻巧,却包括了大部分web框架的功能。

找Bottle文档

小白发现官网是英文版本,找来找去都没有找到中文版

于是上列表吼,“有没有Bottle的中文版文档呀?”。有行者说,“Bottle的文档早就翻译好了。到下面的链接看看吧。”

原来,热心行者早就翻译了呢!

简单的Hello, World程序

根据以前的学习经验,小白决定,先写一个”Hello, World”的程序,以了解Bottle的基本功能。

小白Bottle的文档里抄到了一个简单的代码,取名为index.py。代码如下:

from bottle import route, run

@route('/')
def index():
        return '<b>Hello World!</b>'

run(host='localhost', port=8080)

小白看了一下这段代码,似乎显示Hello程序,只用5行代码。第一行导入Bottle的route和run函数。第二行”@route(‘/’)”,不太清楚它的功能。不过根据route(路由)的意思,小白猜测,它可以是起URL映射的作用。第三和四行是一个显示Hello World的函数。第五行运行这段代码,run(host=’localhost’, port=8080)这一段run函数就是发布应用。其中,host=’localhost’是以本机做为服务器(host)。 port就是发布端口,随便设一个四位数字就行了,我们这里设置为8080。

运行和调试

根据Bottle文档的指示,进入网站代码所在的目录后,运行python index.py就可以启动网站服务器了。小白在命令行中看到了如下的信息,表示启动服务器成功。::
hejibo@ubuntu:~/bottle$ python index.py Bottle server starting up (using WSGIRefServer())... Listening on http://localhost:8080/ Hit Ctrl-C to quit.

上面的信息表示,在浏览器地址栏输入http://localhost:8080/就可以访问网站了。 小白在浏览器中看到了“Hello World!”。小白对Bottle的精巧和易学习非常满意,短短五行代码,就可以写一个基本的网页。

小白决定,进一步深入学习Bottle,以开发一个基本Bottle的网站通讯录。