Python Flask框架扩展操作示例
本文实例讲述了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 Flask框架模板操作实例分析
- 三十一、python学习之Flask框架(三)视图:路由、上下文、Flask-Script扩展
- TP5(thinkPHP5)框架mongodb扩展安装及特殊操作示例
- Python Web 框架 Flask 入门示例
- Flask框架配置与调试操作示例
- Python Flask http框架详解和示例
- Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
- 使用Python的Flask框架构建大型Web应用程序的结构示例
- Flask框架使用DBUtils模块连接数据库操作示例
- Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
- YII框架实现自定义第三方扩展操作示例
- python爬虫框架scrapy实现模拟登录操作示例
- Python使用Flask-SQLAlchemy连接数据库操作示例
- 三十五、python学习之Flask框架(七)数据库:Flask对数据库的基本操作、常见关系模板、数据库迁移、综合案例:图书管理
- 用ReactJS和Python的Flask框架编写留言板的代码示例
- Python Web框架之Flask(2)——mysql数据库操作
- Python使用flask框架操作sqlite3的两种方式
- 使用Python的Flask框架构建大型Web应用程序的结构示例
- Python Flask框架开发 -- 常用扩展包