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程序设计有所帮助。
推荐阅读
-
django框架基于模板 生成 excel(xls) 文件操作示例
-
python 读写excel文件操作示例【附源码下载】
-
python操作kafka实践的示例代码
-
Python的Flask框架标配模板引擎Jinja2的使用教程
-
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
-
深度定制Python的Flask框架开发环境的一些技巧总结
-
Python的SQLalchemy模块连接与操作MySQL的基础示例
-
Python中shutil模块的常用文件操作函数用法示例
-
Python的Flask框架中的Jinja2模板引擎学习教程
-
Python的Tornado框架实现异步非阻塞访问数据库的示例