面向对象里面所有带__的方法都在LocalProxy中
flask上下文管理
请求上下文 requestcontest对象ctx,封装了request,session
App上下文 封装了app/g
第三方组件 wtforms
使用
metaclass
实现原理
django和flask的区别
都是基于wsgi
一个基于传参的形式
一个上下文请求管理形式
flask
配置文件 反射 + importlib
路由系统
装饰器 @app.route()
参数 url
endpoint 反向生成url_for
methods 列表
加装饰器
endpoint默认是函数名
functools.wraps(func) + functools.partial
写路由两者方式:
装饰器
add_url_rule
session 默认存在cookie中
蓝图 目录结果的划分,特殊装饰器before after
上下文管理
threading.local 为每个线程创建单独空间,让线程和线程数据隔离,数据库连接池,为每个线程创建一个连接,内部使用threading.local
面向对象特殊方法
getattr
setattr
delattr
偏函数
单例模式,在py文件创建对象,使用该对象
请求上下文件流程:
源码流程
calll
wsgi_app
- ctx = RequestContext()
- ctx.push() 将ctx传给LocalStack对象,传给Loca