python-flask小结

发布时间 2023-08-24 09:16:05作者: lv99

1.flask和django区别

  1.flask是一个轻量级的,django是一个重量级的,包含了很多组件,包括admin,orm等,flask虽然没有但可以引入第三方组件。

  2.flask是基于上下文管理做的一个应用上下文appcontext和请求上下文requestcontext管理。django只是通过参数传递。

2.flask生命周期

  flask和django一样也是基于wsgi,先创建app和request的context,放在localstack,再然后请求先走beforer_euqest,再然后试图,最后after_request,最后销毁ctx。

3.wsgi本质

  创建一个socket服务端

4.flask蓝图:

  默认flask通过一个脚本实现,由于项目业务比较多,为了方便项目的业务拆分,我们会创建多个文件,为了方便管理用蓝图管理

4.flask的蓝图和django的app区别

  相同:都可以用于业务拆分,需要注册才能使用,都可以在自己的内部定义文件

  不同点:注册位置不同,flask在app创建的时候注册,django在setting配置文件注册。2.flask的中间件(before_request,after_reqyest)应用力度更加细,可以应用在某个方法,django只能在整个app上。3.django内置了很多,flask需要自己导入

5.在flask-app对象中可以传入静态文件模板配置,通过app.config读取配置

6.特殊装饰器:

  before_request,after_request,before_first_request,route,template_global

7.创建装饰器:

  需要添加funtools.wraps

8.flask的session:

  内置的session,session的数据是以加密的形式放在cookie中。

9.flask请求流程

  1.创建两个ctx=Requestcontext,ctx_app=AppContext, requestcontext封装了request和session,appcontext封装了app和g, 并将它们放入到localstack中.

  2.执行before_first_request,再执行before_request

  3.执行视图函数

  4.执行after_request

  5销毁两个ctx,防止内存泄露

10.g是什么

  全局变量,生命周期是从请求到来直到请求结束

11.数据库连接池--dbutils