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的主要内容,如果未能解决你的问题,请参考以下文章