和它本身的轻便一样,Bottle库的使用也十分简单。相信在看到本文前,读者对python也已经有了简单的了解。那么究竟何种神秘的操作,才能用百行代码完成一个服务器的功能?让我们拭目以待。
1. Bottle库安装
1)使用pip安装
2)下载Bottle文件
https://github.com/bottlepy/bottle/blob/master/bottle.py
2.“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将会打开自动重载,网页服务器会在你做出任何更改时自动重载服务器,可实现网站的热更新。
3. 动态路由及文件下载
如上我们使用的get(‘/’),本质上是一种静态路由,在服务器运行前就确定好的地址可以用这种方法来进行路由。
那么如果是服务器运行时呢?比如说网站服务器上存取文件,当然不能采取静态的方式,这时候我们就可以采用动态路由。
Bottle的动态路由,由route方法实现,和get类似,也是采用装饰器来修饰函数实现路由功能。
这里我们看到在装饰器的参量中出现了一个与众不同的东西:'name'。被其修饰的函数的参数与冒号后的参量同名,而在函数中,就可以使用name这个参数作为处理变量,最后返回响应即可。
而动态路由即可为文件路由提供便利。一个服务器中可能存放着成百上千的文件,不可能每个都依靠静态地址。
这里我们可以看到一个新的函数static_file,第一个参数为文件名,第二个参数为根目录地址(即这个文件所在的位置),当前文件系统为:
--HelloWorld.py
--store1.txt
访问浏览器得到
当然你也可以把文件放在文件夹里,只要把root参数更换成文件夹的地址即可。
4. 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文件的位置),查看发现文件已经上传成功!
5. 小结
在完成这些功能后,你一定想把bottle部署到网络上吧,毕竟只在本地运行的话,网站又有什么作用呢?
清华网为我们每一个网络接入点都提供了公网ip,在cmd中使用ipconfig查看ip地址,将run中的运行参数改为你的公网ip,然后在任何一台设备的浏览器上(建议手机,电脑浏览器有时候会很慢)输入ip地址和端口号(默认80),就可以访问啦!
Bottle库还有很多强大的功能,Cookie的读写、插件的安装卸载与禁用都不在话下,也可以将Bottle部署到其他的服务器,非常简单的实现多线程,这些功能有待读者大大发掘哦!
以上是Python轻量级Web框架:Bottle库!的详细内容。更多信息请关注PHP中文网其他相关文章!

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver Mac版
视觉化网页开发工具

Atom编辑器mac版下载
最流行的的开源编辑器