搜索
首页后端开发Python教程Python轻量级Web框架:Bottle库!

Python轻量级Web框架:Bottle库!

和它本身的轻便一样,Bottle库的使用也十分简单。相信在看到本文前,读者对python也已经有了简单的了解。那么究竟何种神秘的操作,才能用百行代码完成一个服务器的功能?让我们拭目以待。

1. Bottle库安装

1)使用pip安装

Python轻量级Web框架:Bottle库!

2)下载Bottle文件

https://github.com/bottlepy/bottle/blob/master/bottle.py

2.“HelloWorld!”

所谓万事功成先HelloWorld,从这个简单的示例中,了解Bottle的基本机制。

先上代码:

Python轻量级Web框架:Bottle库!

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

接下来,我们要构建一个网站,首先要有一个ip地址和一个端口(port),这部分功能由run来完成,在测试环节我们就使用127.0.0.1(本机地址)和80端口(浏览器默认端口)来:

运行这段代码 python HelloWorld.py

Python轻量级Web框架:Bottle库!

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

Python轻量级Web框架:Bottle库!

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

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

代码如下:

Python轻量级Web框架:Bottle库!

不知道大家是否认识def上面的@符号,这个符号是python语法中的装饰器的意思,可以简单的理解为使用get函数对homepage进行修饰。在这里,@get(‘/’)即将homepage装饰成了浏览器发送GET 127.0.0.1/这个请求时的相应函数。可以做任意处理,最后返回get请求的相应。这里就返回了简单的HelloWorld页面,再次运行,就有这样的效果:

Python轻量级Web框架:Bottle库!

也可以使用bottle中封装的template方法,将网页数据单独写在.tpl文件中,示例如下:

Python轻量级Web框架:Bottle库!

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

3. 动态路由及文件下载

如上我们使用的get(‘/’),本质上是一种静态路由,在服务器运行前就确定好的地址可以用这种方法来进行路由。

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

Bottle的动态路由,由route方法实现,和get类似,也是采用装饰器来修饰函数实现路由功能。

Python轻量级Web框架:Bottle库!

这里我们看到在装饰器的参量中出现了一个与众不同的东西:'name'。被其修饰的函数的参数与冒号后的参量同名,而在函数中,就可以使用name这个参数作为处理变量,最后返回响应即可。

Python轻量级Web框架:Bottle库!

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

Python轻量级Web框架:Bottle库!

这里我们可以看到一个新的函数static_file,第一个参数为文件名,第二个参数为根目录地址(即这个文件所在的位置),当前文件系统为:

--HelloWorld.py

--store1.txt

访问浏览器得到

Python轻量级Web框架:Bottle库!

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

4. POST的响应与文件上传

如果要实现更复杂的功能,我们不但需要使用GET方法,也需要POST方法。这里我们使用HTML语言中的Form来演示Bottle库对于POST请求的响应。

Python轻量级Web框架:Bottle库!

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

此处的页面为一个简单的表单提交界面,在此不做详细介绍,打开页面如下:

Python轻量级Web框架:Bottle库!

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

Python轻量级Web框架:Bottle库!

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

和get方法类似,使用post装饰响应函数,之后在函数体中使用request即可获取网站服务器接受到的post请求体。request.forms.get()方法可以将表单中对应Key的字符串取出,request.files.get()方法可以将表单中对应Key的文件取出,使用save方法将数据储存就实现了文件的上传。

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

Python轻量级Web框架:Bottle库!

点击上传后,我们打开服务器根目录(就是python文件的位置),查看发现文件已经上传成功!

Python轻量级Web框架:Bottle库!

5. 小结

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

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

Bottle库还有很多强大的功能,Cookie的读写、插件的安装卸载与禁用都不在话下,也可以将Bottle部署到其他的服务器,非常简单的实现多线程,这些功能有待读者大大发掘哦!

以上是Python轻量级Web框架:Bottle库!的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:51CTO.COM。如有侵权,请联系admin@php.cn删除
Python和时间:充分利用您的学习时间Python和时间:充分利用您的学习时间Apr 14, 2025 am 12:02 AM

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

Python:游戏,Guis等Python:游戏,Guis等Apr 13, 2025 am 12:14 AM

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

Python vs.C:申请和用例Python vs.C:申请和用例Apr 12, 2025 am 12:01 AM

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

2小时的Python计划:一种现实的方法2小时的Python计划:一种现实的方法Apr 11, 2025 am 12:04 AM

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

Python:探索其主要应用程序Python:探索其主要应用程序Apr 10, 2025 am 09:41 AM

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

您可以在2小时内学到多少python?您可以在2小时内学到多少python?Apr 09, 2025 pm 04:33 PM

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

如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础?如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础?Apr 02, 2025 am 07:18 AM

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

如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到?如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到?Apr 02, 2025 am 07:15 AM

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

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器