关于python:Python轻量级Web框架Bottle库

32次阅读

共计 2122 个字符,预计需要花费 6 分钟才能阅读完成。

Bottle 是一个超轻量级的 python 库。说是库,其自身只由一个 4000 行左右的文件形成,并且不须要任何依赖,只靠 python 规范库即可运作。

和它自身的轻便一样,Bottle 库的应用也非常简略。置信在看到本文前,读者对 python 也曾经有了简略的理解。那么到底何种神秘的操作,能力用百行代码实现一个服务器的性能?让咱们刮目相待。

一. Bottle 库装置

1)应用 pip 装置

2)下载 Bottle 文件

https://github.com/bottlepy/b…

二.“HelloWorld!”

所谓万事功成先 HelloWorld,从这个简略的示例中,理解 Bottle 的根本机制。

先上代码:

首先咱们从 bottle 库中导入 get 和 run 两个办法。

接下来,咱们要构建一个网站,首先要有一个 ip 地址和一个端口(port),这部分性能由 run 来实现,在测试环节咱们就应用 127.0.0.1(本机地址)和 80 端口(浏览器默认端口)来:运行这段代码 python HelloWorld.py

这样网站服务器就处于运行状态啦,关上浏览器,输出 127.0.0.1(:80)

相熟的 404,谬误提醒 Not found:‘/’。这是当然的,因为网站除了服务器之外,还有很重要的成分——网页啊!

浏览器拜访 ip 地址时,即向这个 ip 发送了 get 申请,期待返回网页数据,那么咱们的 bottle 库里,封装了 get 办法,用来实现这一过程。

代码如下:

不晓得大家是否意识 def 下面的 @符号,这个符号是 python 语法中的装璜器的意思,能够简略的了解为应用 get 函数对 homepage 进行润饰。在这里,@get(‘/’) 行将 homepage 装璜成了浏览器发送 GET 127.0.0.1/ 这个申请时的相应函数。能够做任意解决,最初返回 get 申请的相应。这里就返回了简略的 HelloWorld 页面,再次运行,就有这样的成果:

也能够应用 bottle 中封装的 template 办法,将网页数据独自写在.tpl 文件中,示例如下:

run 函数还有一个参数 reloader,将其设置为 True 将会关上主动重载,网页服务器会在你做出任何更改时主动重载服务器,可实现网站的热更新。

三.动静路由及文件下载

如上咱们应用的 get(‘/’),实质上是一种动态路由,在服务器运行前就确定好的地址能够用这种办法来进行路由。

那么如果是服务器运行时呢?比如说网站服务器上存取文件,当然不能采取动态的形式,这时候咱们就能够采纳动静路由。

Bottle 的动静路由,由 route 办法实现,和 get 相似,也是采纳装璜器来润饰函数实现路由性能。

这里咱们看到在装璜器的参量中呈现了一个不同凡响的货色:’name’。被其润饰的函数的参数与冒号后的参量同名,而在函数中,就能够应用 name 这个参数作为解决变量,最初返回响应即可。

而动静路由即可为文件路由提供便当。一个服务器中可能寄存着成千盈百的文件,不可能每个都依附动态地址。

这里咱们能够看到一个新的函数 static_file,第一个参数为文件名,第二个参数为根目录地址(即这个文件所在的地位),以后文件系统为:

–HelloWorld.py 

–store1.txt

拜访浏览器失去

当然你也能够把文件放在文件夹里,只有把 root 参数更换成文件夹的地址即可。

四. POST 的响应与文件上传

如果要实现更简单的性能,咱们岂但须要应用 GET 办法,也须要 POST 办法。这里咱们应用 HTML 语言中的 Form 来演示 Bottle 库对于 POST 申请的响应。

首先咱们实现一个上传文件的窗口,如上。

此处的页面为一个简略的表单提交界面,在此不做具体介绍,关上页面如下:

接下来的 POST 响应,代码如下:

从 Bottle 库中导入 post 办法和 request。

和 get 办法相似,应用 post 装璜响应函数,之后在函数体中应用 request 即可获取网站服务器承受到的 post 申请体。request.forms.get() 办法能够将表单中对应 Key 的字符串取出,request.files.get() 办法能够将表单中对应 Key 的文件取出,应用 save 办法将数据贮存就实现了文件的上传。

接下来咱们进行一次测试:

点击上传后,咱们关上服务器根目录(就是 python 文件的地位),查看发现文件曾经上传胜利!

五.小结

在实现这些性能后,你肯定想把 bottle 部署到网络上吧,毕竟只在本地运行的话,网站又有什么作用呢?

清华网为咱们每一个网络接入点都提供了公网 ip,在 cmd 中应用 ipconfig 查看 ip 地址,将 run 中的运行参数改为你的公网 ip,而后在任何一台设施的浏览器上(倡议手机,电脑浏览器有时候会很慢)输出 ip 地址和端口号 (默认 80),就能够拜访啦!

Bottle 库还有很多弱小的性能,Cookie 的读写、插件的装置卸载与禁用都不在话下,也能够将 Bottle 部署到其余的服务器,非常简单的实现多线程。

以上就是本次分享的所有内容,如果你感觉文章还不错,欢送关注公众号:Python 编程学习圈 ,每日干货分享,发送“J”还可支付大量学习材料,内容笼罩 Python 电子书、教程、数据库编程、Django,爬虫,云计算等等。或是返回编程学习网,理解更多编程技术常识。

正文完
 0