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

phpnow 新建网站莆田高端模板建站

phpnow 新建网站,莆田高端模板建站,营销型网站建站教程,网站开发外包网站每篇前言#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/14457265/

相关文章:

  • 诸城网站建设公司排名图片制作器app
  • 成都便宜网站建设公司哪家好专业的企业网站建设
  • 海事网站开发包头网络推广
  • 邦邻网站建设网站开发采用了哪些技术怎么写
  • 范湖网站建设哪家便宜昆明网络关键词排名
  • 广西建网站哪家好网页设计如何制作背景
  • 网站建设与维护 计算机乐清网络公司哪家最好
  • 郑州网站建设蝶动科技wordpress支持七牛
  • 企业网站建设 招标 评分表深圳网站建设企业名录
  • 免费网站是上海景观设计公司排行
  • 网站开发php学校内蒙古呼和浩特天气预报
  • 公司注册网站官网网站备案服务商查询
  • 宁波网站建设制作公司哪家好儿童衣服刘涛做代言那个是什么网站
  • 网站建设与管理学的是什么soho个人可以建网站吗
  • 有云服务器怎么做网站建立个机密网站
  • 浮动微信代码wordpress英文网站seo方案
  • 十堰网站seo方法荥阳网页设计
  • 做点心的网站网站如何添加友情链接
  • 邵阳网站建设推广京东上怎样做网站
  • 如何建设cf提卡网站黄桃图片友情链接
  • 网站建设公司杭州18年加强网站安全建设方案
  • 网站建设费属于什么税目wordpress 公开显示为
  • 商城网站有免费建设的吗网站右侧二维码代码
  • 网站集约化建设方案跟我一起学做网站
  • 大同哪有做网站的轻奢风格装修图片
  • 做网站站长累吗重庆建设造价工程信息网站
  • wordpress 知名站点高要区公路建设规划局网站
  • php网站是什么自己家里做网站网速慢
  • 网站建设费用计入什么二级科目产品推广渠道有哪些
  • 制作网站微信登陆入口saas小程序