Python Flask框架扩展操作示例


Posted in Python onMay 03, 2019

本文实例讲述了Python Flask框架扩展操作。分享给大家供大家参考,具体如下:

请求上下文(request context)

Flask有两大核心:Werkzeug和Jinja2。Werkzeug实现路由、调试和Web服务器网关接口。Jinja2实现了模板。

request和response都属于请求上下文对象。
当调用app = Flask(name)的时候,创建了程序应用对象app;
request 在每次http请求发生时,WSGI server调用Flask.call();然后在Flask内部创建的request对象;
app的生命周期大于request,一个app存活期间,可能发生多次http请求,所以就会有多个request。
最终传入视图函数,通过return、redirect或render_template生成response对象,返回给客户端。

Flask装饰器路由的实现:

Flask框架是以Werkzeug为基础实现的。

Werkzeug是一个遵循WSGI协议的python函数库。其内部实现了很多Web框架底层的东西,比如request和response对象;与WSGI规范的兼容;支持Unicode;支持基本的会话管理和签名Cookie;集成URL请求路由等。

Werkzeug库的routing模块负责实现URL解析。不同的URL对应不同的视图函数,routing模块会对请求信息的URL进行解析,匹配到URL对应的视图函数,以此生成一个响应信息。

routing模块内部有Rule类(用来构造不同的URL模式的对象)、Map类(存储所有的URL规则)、MapAdapter类(负责具体URL匹配的工作);

Flask-Script扩展命令行

通过使用Flask-Script扩展,我们可以在Flask服务器启动的时候,通过命令行的方式传入参数。而不仅仅通过app.run()方法中传参,比如我们可以通过python hello.py runserver ?host ip地址,告诉服务器在哪个网络接口监听来自客户端的连接。默认情况下,服务器只监听来自服务器所在计算机发起的连接,即localhost连接。

我们可以通过python hello.py runserver ?help来查看参数。

from flask import Flask
from flask_script import Manager
app = Flask(__name__)
manager = Manager(app)
@app.route('/')
def index():
  return '床前明月光'
if __name__ == "__main__":
  manager.run()

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

Python 相关文章推荐
更改Ubuntu默认python版本的两种方法python-> Anaconda
Dec 18 Python
python3.4用函数操作mysql5.7数据库
Jun 23 Python
Python实现曲线点抽稀算法的示例
Oct 12 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
Jan 29 Python
在VS Code上搭建Python开发环境的方法
Apr 06 Python
Python3实现的简单验证码识别功能示例
May 02 Python
python3实现往mysql中插入datetime类型的数据
Mar 02 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
Apr 13 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
Apr 22 Python
关于Kotlin中SAM转换的那些事
Sep 15 Python
如何判断pytorch是否支持GPU加速
Jun 01 Python
用Python将GIF动图分解成多张静态图片
Jun 11 Python
Python安装Flask环境及简单应用示例
May 03 #Python
Python实现字典按key或者value进行排序操作示例【sorted】
May 03 #Python
Python3模拟curl发送post请求操作示例
May 03 #Python
零基础使用Python读写处理Excel表格的方法
May 02 #Python
Python TestCase中的断言方法介绍
May 02 #Python
Python3中的bytes和str类型详解
May 02 #Python
利用pyinstaller打包exe文件的基本教程
May 02 #Python
You might like
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
HTML颜色选择器实现代码
2010/11/23 Javascript
20款效果非常棒的 jQuery 插件小结分享
2011/11/18 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
js data日期初始化的5种方法
2013/12/29 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
2015/10/28 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
使用webpack将ES6转化ES5的实现方法
2019/10/13 Javascript
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
[02:23]DOTA2英雄基础教程 幻影长矛手
2013/12/09 DOTA
爬山算法简介和Python实现实例
2014/04/26 Python
Python自动登录126邮箱的方法
2015/07/10 Python
使用Python实现简单的服务器功能
2017/08/25 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
利用python-pypcap抓取带VLAN标签的数据包方法
2019/07/23 Python
MNIST数据集转化为二维图片的实现示例
2020/01/10 Python
Reformation官网:美国女装品牌
2018/09/14 全球购物
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
护理专业自荐信
2013/12/03 职场文书
好矿嫂事迹材料
2014/01/21 职场文书
《骆驼和羊》教学反思
2014/02/27 职场文书
婚前协议书怎么写
2014/04/15 职场文书
优秀的个人求职信范文
2014/05/09 职场文书
白酒营销策划方案
2014/08/17 职场文书
会计人员岗位职责
2015/02/03 职场文书
仓库管理制度范本
2015/08/04 职场文书
关于军训的感想
2015/08/07 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书
win sever 2022如何占用操作主机角色
2022/06/25 Servers
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS