Flask3
Posted 0和1的大世界
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask3相关的知识,希望对你有一定的参考价值。
1 路由和视图补充
路由
- 路由设置的两种方式:
- @app.route("/index")
def index():
return "index"
- def index():
return "index"
app.add_url_rule("/index",None,index)
- 注意
- 尽量别让endpoint重名
- 参数:
除了endpoint,methods其他都不大常用
CBV:
- class UserView(views.MethodView):
method = ["GET","POST] #指定允许的请求方式
decorators = [wrapper,]#wrapper就是装饰器名
def get(self,*args,**kwargs):
return "get"
def post(self,*args,**kwargs):
return "get"
app.add_url_rule("/index",None,UserView.as_view())
注意:
在flask框架里CBV用的比较少。
自定义正则:
flask一般不支持自定义正则,但是可以自定义正则。
2 session实现原理(源码)
3 蓝图
到目前为止路由和所有的视图都是在一个py文件里。现在出现了这样一种情况,当视图函数达到1000个时,都在一个py文件里是不是就显得有些冗余了。蓝图就应运而生。各司其职,把视图模板静态文件分别写在不同的文件里边,每个视图文件都将文件名作为参数传递到实例化的蓝图对象,此时实例化的flask对象与咱自己写的视图文件没有关系,因此需要在实例化的flask对象里注册,相当于给他俩联通。其实最后的效果就和django差不多了,不同的地方是,django帮你做了,只需要你注册,flask则啥都需要你自己做。
4 threading.local
- 作用
隔离线程。对每一个线程开启一块内存空间,让每一个线程对他的那块空间的数据进行修改。
- 运用了class里的双下划线方法,__setattr _getattr_方法,我记忆中第一次使用该方法的地方。
5 上下文管理(初涉)
- 请求到来时
- 处理请求时
- 请求结束后以上是关于Flask3的主要内容,如果未能解决你的问题,请参考以下文章