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 相关文章推荐
浅析Python中的赋值和深浅拷贝
Aug 15 Python
Python实现的简单读写csv文件操作示例
Jul 12 Python
Python爬虫小技巧之伪造随机的User-Agent
Sep 13 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
Sep 19 Python
Python3对称加密算法AES、DES3实例详解
Dec 06 Python
python在openstreetmap地图上绘制路线图的实现
Jul 11 Python
python爬取Ajax动态加载网页过程解析
Sep 05 Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 Python
Keras-多输入多输出实例(多任务)
Jun 22 Python
keras用auc做metrics以及早停实例
Jul 02 Python
python爬虫---requests库的用法详解
Sep 28 Python
DRF使用simple JWT身份验证的实现
Jan 14 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
PHP读取xml方法介绍
2013/01/12 PHP
curl实现站外采集的方法和技巧
2014/01/31 PHP
PHP操作MySQL事务实例
2014/11/05 PHP
php中判断数组相等的方法以及数组运算符介绍
2015/03/30 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
javascript dom 基本操作小结
2010/04/11 Javascript
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
jquery插件validate验证的小例子
2013/05/08 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
详解vue+vueRouter+webpack的简单实例
2017/06/17 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
2017/07/21 Javascript
BootStrap给table表格的每一行添加一个按钮事件
2017/09/07 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
Node.js 中使用 async 函数的方法
2017/11/20 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
JavaScript console的使用方法实例分析
2020/04/28 Javascript
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
python迭代器实例简析
2014/09/25 Python
Python中使用PDB库调试程序
2015/04/05 Python
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
Python使用Pandas库实现MySQL数据库的读写
2019/07/06 Python
python数据归一化及三种方法详解
2019/08/06 Python
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
银行简历自我评价
2014/02/11 职场文书
会计员岗位职责
2014/03/15 职场文书
中秋客户感谢信
2015/01/22 职场文书
报名委托书
2015/01/29 职场文书
2022微信温控新功能上线
2022/05/09 数码科技