当前位置: 首页 > news >正文

湖南建设监理官方网站建筑网方成龙

湖南建设监理官方网站,建筑网方成龙,手机百度app下载安装,网址大全导航每篇前言#xff1a; #x1f3c6;#x1f3c6;作者介绍#xff1a;【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领域博主、CSDN原力计划作者 #x1f525;#x1f525;本文已收录于Flask框架从入门到实战专栏#xff1a;《Flask框架从入…每篇前言 作者介绍【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领域博主、CSDN原力计划作者 本文已收录于Flask框架从入门到实战专栏《Flask框架从入门到实战》热门专栏推荐《Python全栈系列教程》、《Django框架从入门到实战》、《爬虫从入门到精通系列教程》、《前端系列教程》、《tornado一条龙一个完整版项目》。​本专栏面向广大程序猿为的是大家都做到Flask从入门到精通穿插有很多实战优化点。订阅专栏后可私聊进一千多人Python全栈交流群手把手教学问题解答 进群可领取Python全栈教程视频 多得数不过来的计算机书籍基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。加入我一起学习进步一个人可以走的很快一群人才能走的更远 经过上文分析我们可以将整个过程分为三阶段 将ctx对象包含request和session放到Local对象中 视图函数导入request/session; 请求处理完毕 获取session并加密后保存到cookie将ctx删掉 第一阶段 将ctx对象包含request和session放到Local对象中。 进去下图中self就是ctx对象 继续进 显而易见上述_request_ctx_stack是一个全局变量在整个应用程序的生命周期中它只创建一次这是一种单例模式的实现方式~ 继续进 可以看到这个对象里又包了一个对象这个_local对象才是真正存ctx的而上面的_request_ctx_stack对象则相当于是一个代理每次需要存ctx的时候都要先交给代理代理再将其给到真正存储ctx的_local对象里 上述push方法中_local对象点stack又会触发Local对象的__setattr__方法 下图以第一阶段为主画了个简单的流程图以便大家更好地梳理 拓展一flask里的session 是什么时候创建什么时候销毁的 当请求刚进来的时候会将request和session封装成一个request_context对象接下来通过LocalStack把这个对象放到内部的Local里【注意现在session还是空的】 下一步执行open_session将cookie里的值拿来处理后再放到Local中的ctx里。 最后返回的时候要执行save_session将ctx里的session读出来序列化后存到用户cookie中再将ctx给pop掉~ 第二阶段 分析下图的流程 from flask import Flask, requestapp Flask(__name__)app.route(/) def hello_world():print(request) # 执行request对象的__str__方法request.method # 执行request对象的__getattr__(keymethod)方法return hello world~if __name__ __main__:app.__call__app.run() 看源码进request 回去 from flask import Flask, requestapp Flask(__name__)app.route(/) def hello_world():print(request) # LocalProxy对象的__str__ request.method # LocalProxy对象的__getattr__(keymethod) 这一步应该包含多个操作先去ctx中拿到request再去request中获取methodreturn hello world~if __name__ __main__:app.__call__app.run() 进LocalProxy源码 进去_get_current_object() __local就是最开始传给LocalProxy的经过偏函数处理的那个函数下图中的这个 __local函数加括号执行这个函数进去看 继续看session 如上图所指会执行session对象的__setitem__方法~ 进session源码 和request区别就是传的参数是session 跳出来 from flask import Flask, request, sessionapp Flask(__name__)app.route(/) def hello_world():print(request) # LocalProxy对象的__str__request.method # LocalProxy对象的__getattr__ 这一步应该包含多个操作先去ctx中拿到request再去request中获取methodsession[k1] guhanzhe # LocalProxy对象的__setitem__(keyk1, valueguhanzhe) # 先去ctx中拿到session再给session中设置对应的值session[k1] # LocalProxy对象的__getitem__(key1) # 先去ctx中拿到session再去session中获取对应的值return hello world~if __name__ __main__:app.__call__app.run() 视图函数中有关于request和session的操作都是通过LocalProxy对象这个中介操作然后再通过函数_lookup_req_object去ctx获取到request和session对象。 第三阶段 pop肯定也不是直接pop的也要走中介如下图蓝色流程线 但是上述所画几个流程图其实都不全所以再来缕一遍源码 进push 在这个AppContext对象中又封装了两个值app和g 回退 封装了那两个值后执行app_ctx.push()再来看看app_ctx是啥 所以流程图又要更新了这次多了个存放app就是程序进来实例化的Flask对象和g的对象 完整画图 上面刚说多了个g和app 进去g 进去current_app 是不是和request和session一个流程 最后来看看最后的最后 把最后的最后补充进图 上面这个机制支持多线程 Flask中一共有几个LocalStack和Local对象 都是两个~
http://www.hkea.cn/news/14312824/

相关文章:

  • 两个男性做网站重复建设政务网站
  • 网站开发语言有几种wordpress站群模板
  • 设计接活的网站长沙竞价优化
  • php网站开发视频网站泰安招聘信息最新招聘2023
  • 太原定制网站建设制作公司已备案个人网站做淘宝客
  • 同学录网站开发实现基本要求免费软件app不收费的
  • 做网站的人月所有复刻手表网站
  • 郑州网站建设蝶动科技网站建设的所有权
  • 网站的模板演示怎么做论坛网站建设公司
  • 做网站工作室找客户难关于网站seo优化
  • 海南app网站建设图跃企业网站建设
  • 广州康体设备网站建设删除wordpress主题字体载入
  • 企业所得税税率5%aso优化什么意思是
  • 成都市建设部官方网站制作二维码的思维导图
  • 如何看网站有没有备案眉山专业网吧设计公司
  • 免费psd模板网站建设银行信用卡申请网站
  • 网站项目开发流程图厦门的商城网站建设
  • 网站优化是在哪里做修改网站做不做双解析
  • 个人建 行业 网站南山网站公司
  • 工程技术研究中心网站建设要求手机网站建设哪家好
  • 建设网站比较好公司公司运营策划营销
  • 织梦唯美网站源码品牌标识设计
  • 网站快速优化排名官网接家装活找哪个平台
  • 网站什么也没动怎么不收录啦sns社交网站 建设文档
  • 后缀为net的网站有哪些石家庄设计网站公司
  • 一个一起做网站网络安全有名的培训学校
  • 网站如何盈利流量费青县网站建设咨询
  • 用书籍上的文章做网站更新创新的天津网站建设
  • 男女性直接做的视频网站青岛市区商场黄页
  • 徐州建站网页建设自己做的网站涉黄