flask复习


装饰器?应用场景?、
在不改变函数内部代码的前提下,在它之前之上做些其他动作

​ 应用:

​ flask路由、before_request、登录限制

​ django:csrf、缓存、用户登录

蓝图
用作目录结构管理,可以加URL前缀,在某一个蓝图里面加入before_request
session
flask: 请求刚进来,去cookie获取原来的session,没有就是空 ,把cookie拿到转换成特殊的字典,放在某个地方,谁要就去拿 (先把他放在某个地去取)django:(一直传递)
django/flask框架的认识:
django:大而全,包含很多组件如:admin,form
flask:短小精悍,可扩展强,很多组件如:wtforms、 SQLAchemy\flask-sqlachemy、flask-script、flask-migrate
相同点:都基于wsgi (一个协议,一套http协议规范 ),没有自己的socke
不同点:请求方式不一样,django相关数据通过参数传递,flask基于上下文管理来做
上下文管理:
请求上下文:request、session
App上下文:app、g
什么是g:

​ 一次请求周期内的全局变量,只在一个周期内有效

上下文管理器:

​ 请求进来实例化RequestContext()对象,在实例化的过程中 已经把路由匹配做完了,把request和session以及路由匹配封装到RequestContext()对象里面,基于LocalStack把他放到Local里面,这是请求上下文,还有一个App请求上下文,他是基于APPContext()对象把app和g通过自己的LocalStack放到Local里面

​ 视图处理阶段使用LocalProxy调用偏函数,偏函数调用LocalStack到Local里面取值

​ 请求结束,保存session,调用LocalStack.pop()把Local里面的东西删掉

Local是什么它的作用?

​ 用于保存请求上下文对象以及app上下文对象

​ 特殊作用:在保存时可以做到 “线程” 间的数据隔离

LocalStack是什么它的作用?

​ 将Local中保存的数据维护成一个栈 栈特点:先进后出

Flask内置功能

​ 路由、配置、视图、模板、session、蓝图、闪现、装饰器、中间件

flask组件

​ flask_session、flask-sqlalchemy、flask-migrate、flask-script

第三方组件

​ 、DBUtils(数据连接池)、wtforms、sqlalchemy


文章作者: Kexuan Shi
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Kexuan Shi !
评论
  目录