首页 > 编程语言 >python-flask小结

python-flask小结

时间:2023-08-24 09:23:12浏览次数:44  
标签:python app request django flask session 小结 before

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

标签:python,app,request,django,flask,session,小结,before
From: https://www.cnblogs.com/lvqiang/p/17652150.html

相关文章

  • python rasa聊天机器人教程六:服务器部署
    1.准备环境:宝塔+nginx+docker首先在服务器上安装好宝塔,然后在宝塔里面安装nginx+docker2.创建站点宝塔站点里面创建一个站点 3.上传rasa项目的代码到站点目录把之前在本地运行正常的rasa项目代码上传到服务器站点目录上4.修改index.html代码修改站点目录下/www/wwwroo......
  • python - 文件md5校验
    通过md5校验文件,我们可以判断文件内容是否改变,用python实现代码如下importhashlib#1.txt为空文本withopen('1.txt','rb')asf:data=f.read()md5Old=hashlib.md5(data).hexdigest()print(md5Old)#d41d8cd98f00b204e9800998ecf8427e#1.txt内容为12......
  • Python基础
    python学习后缀.py纯Python文件.ipynbJupyterNotebook文件的扩展名,代表IpythonNotebook.pyi类型提示文件,提供代码静态类型信息,帮助开发人员进行类型检查和静态分析命名和对应py文件相同,以便编译器将二者进行关联.pycPython字节码文件的扩展名,存储已编......
  • Python结合文件名将文件复制到匹配的多个文件夹内
       本文介绍基于Python语言,针对一个文件夹下的大量栅格遥感影像文件,基于其各自的文件名,分别创建指定名称的新文件夹,并将对应的栅格遥感影像文件复制到不同的新文件夹下的方法。  首先,我们来看一下本文需要实现的需求。现有一个文件夹,其中有大量.tif格式的栅格遥感影像文件,以......
  • python3_获得文件大小
    1、os.path.getsize(file_path),返回文件字节大小,int类型。importosfile_size=os.path.getsize('/home/pi/jodie/log/jodie-test.log')print(file_size,type(file_size))#947642<class'int'>#显示文件大小为:925kB2、os.stat(file_path).st_size,返回文件字......
  • python for循环
     格式:for变量in序列:执行的代码块 实例1:fruits=["apple","banana","cherry"]forfruitinfruits:print(fruit)      ......
  • python3_关于数字的一些操作记录
    1、数字整数、小数部分分离方法1:math模块提供的floor方法xs=num-math.floor(num)zs=num-xsreturn 'zhengShu: {0}, xiaoShu: {1}'.format(str(zs),str(xs))方法2:将浮点类型的数字转化为字符串zs,xs=str(num).split('.')return 'zhengShu: {0}, xiaoShu: {1}'.fo......
  • python+selenium+pytest-(3)_基本操作方法
    浏览器操作#浏览器实例化driver=webdriver.Chrome()#窗口最大化driver.maximize_window()#窗口最小化driver.miximize_window()#浏览器长、宽设置,单位:像素driver.set_window_size(100,200)#获取浏览器大小driver.get_window_size()#前进/后退/刷新driver.forwa......
  • python解释器的安装与多版本共存
    内容总结一、计算机内部存储的原理#计算机内部只认识01二进制因为计算机是基于电频工作的,电频是有高低之分的#存储单位比特位(bit)'''二进制的位数'''00000001000000018比特位=1字节(bytes)1024字节(bytes)=1KB1024KB=1MB1024MB=1GB1024GB=1TB...二、编程语......
  • Python
    Python知识长久的沉淀,源于不断的思考--尘风一、Python概述1.1Python简介学习任何东西之前都应该想明白,学的是什么?为什么去学?该如何去学?Python概念  Python是一门流行的编程语言,由"GuidovanRossum"吉多·范罗苏姆即龟叔于1989年创建,后于1991年发布。图标......