我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python轻量级Web框架:Bottle库!

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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库!的详细内容,更多请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python轻量级Web框架:Bottle库!

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python用Bottle轻量级框架进行Web开发

当前Python Web开发中的框架算Django最为流行了,但是本文介绍的是一个较为轻量级的Web框架:Bottle框架。理论性的东西就不讲了,直接上实例代码。 1.问题描述最近做一个系统的后台开发,用的就是Python+Bottle进行
2022-06-04

浅谈Node.js轻量级Web框架Express4.x使用指南

Express是一个轻量级的Web框架,简单、灵活 也是目前最流行的基于Nodejs的Web框架 通过它我们可以快速搭建功能完整的网站 (express 英文意思:特快列车) Express现在是4.x版本,更新很快,并且不兼容旧版本,导致
2022-06-04

looter——超轻量级爬虫框架

如今,网上的爬虫教程可谓是泛滥成灾了,从urllib开始讲,最后才讲到requests和selenium这类高级库,实际上,根本就不必这么费心地去了解这么多无谓的东西的。只需记住爬虫总共就三大步骤:发起请求——解析数据——存储数据,这样就足
2023-01-31

PHP轻量级框架有哪些

PHP轻量级框架有以下几种:1. Slim:一个简单、轻量级的微型框架,适用于构建简单的RESTful API或Web应用程序。2. Lumen:Laravel框架的微型版本,专注于构建API和微服务。3. Silex:基于Symfony组
2023-08-25

Python超级明星WEB框架Flask

Flask简介Flask是一个相对于Django而言轻量级的Web框架。和Django大包大揽不同,Flask建立于一系列的开源软件包之上,这其中 最主要的是WSGI应用开发库Werkzeug和模板引擎Jinja: 策略 :werkzeug
2023-01-31

基于Golang开发一个轻量级登录库/框架

几乎每个项目都会有登录,退出等用户功能,而登录又不单仅仅是登录,我们要考虑很多东西。所以本文就来用Golang开发一个轻量级登录库/框架吧
2023-05-19

基于node.js express mvc轻量级框架实践

本文记录的是笔者最近抽私下时间给朋友做的一个时时彩自动下注系统,比较简单,主要也是为了学习一下node.js。 其实逻辑没什么可以深谈的,主要是想说说这套代码结构。结构如下图:js的代码比较难以维护,不清楚大家对于这点是否认同,但这里笔者只
2022-06-04

通过Python 获取Android设备信息的轻量级框架

今天跟大家分享一下,如何通过Python实现一个轻量级的库来获取电脑上连接的Android设备信息,为什么说轻量呢因为整个库也就4KB,相比其他诸如Appetizer这样动辄就8MB多的库要轻很多,而且也基本满足项目中的需求。 这个库只有一
2022-06-06

ThreadPoolTaskScheduler轻量级多线程定时任务框架

ThreadPoolTaskScheduler轻量级多线程定时任务框架 前言一、ThreadPoolTaskScheduler是什么?二、上干货1.ThreadPoolTaskScheduler常用的api介绍2.springboo
2023-08-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录