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

佛山公益网站制作什么是seo文章

佛山公益网站制作,什么是seo文章,内容整合营销,wordpress评论框字数限制每篇前言: 🏆🏆作者介绍:【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领域博主、CSDN原力计划作者 🔥🔥本文已收录于Flask框架从入门到实战专栏:《Flask框架从入…

每篇前言:

  • 🏆🏆作者介绍:【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领域博主、CSDN原力计划作者

  • 🔥🔥本文已收录于Flask框架从入门到实战专栏:《Flask框架从入门到实战》
  • 🔥🔥热门专栏推荐:《Python全栈系列教程》、《Django框架从入门到实战》、《爬虫从入门到精通系列教程》、《前端系列教程》、《tornado一条龙+一个完整版项目》。
  • 📝​📝本专栏面向广大程序猿,为的是大家都做到Flask从入门到精通,穿插有很多实战优化点。
  • 🎉🎉订阅专栏后可私聊进一千多人Python全栈交流群(手把手教学,问题解答); 进群可领取Python全栈教程视频 + 多得数不过来的计算机书籍:基础、Web、爬虫、数据分析、可视化、机器学习、深度学习、人工智能、算法、面试题等。
  • 🚀🚀加入我一起学习进步,一个人可以走的很快,一群人才能走的更远!

在这里插入图片描述

经过上文分析,我们可以将整个过程分为三阶段:

  1. 将ctx对象(包含request和session)放到Local对象中;

  2. 视图函数导入:request/session;

  3. 请求处理完毕:

    • 获取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__(key='method')方法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__(key='method')      这一步应该包含多个操作:先去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__(key=k1, value='guhanzhe')      # 先去ctx中拿到session,再给session中设置对应的值session['k1']               # LocalProxy对象的__getitem__(key='1')                       # 先去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://dinncoautotomy.stkw.cn
http://dinncotallulah.stkw.cn
http://dinncoignatius.stkw.cn
http://dinncoappreciably.stkw.cn
http://dinncolipbrush.stkw.cn
http://dinncohonorary.stkw.cn
http://dinncoholily.stkw.cn
http://dinncopopster.stkw.cn
http://dinncolaborite.stkw.cn
http://dinncogermfree.stkw.cn
http://dinncofroward.stkw.cn
http://dinncomounted.stkw.cn
http://dinncochirurgery.stkw.cn
http://dinncolowliness.stkw.cn
http://dinncocubbish.stkw.cn
http://dinncodeltawing.stkw.cn
http://dinncodidactics.stkw.cn
http://dinncoelenctic.stkw.cn
http://dinncotungstenic.stkw.cn
http://dinncointermedium.stkw.cn
http://dinncobrit.stkw.cn
http://dinncoetic.stkw.cn
http://dinncowoopie.stkw.cn
http://dinncoveronese.stkw.cn
http://dinncoleishmaniasis.stkw.cn
http://dinncocantonal.stkw.cn
http://dinncocolorful.stkw.cn
http://dinncoleak.stkw.cn
http://dinncotrichloronitromethane.stkw.cn
http://dinncohardtop.stkw.cn
http://dinncoradiolucency.stkw.cn
http://dinncowindproof.stkw.cn
http://dinncothinclad.stkw.cn
http://dinncoantiforeign.stkw.cn
http://dinncomusa.stkw.cn
http://dinncorevenuer.stkw.cn
http://dinncomagsman.stkw.cn
http://dinncooxyuriasis.stkw.cn
http://dinncoposttreatment.stkw.cn
http://dinncohystrichosphere.stkw.cn
http://dinncorocklet.stkw.cn
http://dinncounregenerate.stkw.cn
http://dinncodeliquium.stkw.cn
http://dinncoshittah.stkw.cn
http://dinncodeeryard.stkw.cn
http://dinncovfr.stkw.cn
http://dinncobrushup.stkw.cn
http://dinncocalamine.stkw.cn
http://dinncomegamillionaire.stkw.cn
http://dinncoindisposed.stkw.cn
http://dinncodivinize.stkw.cn
http://dinncogenerically.stkw.cn
http://dinncoshagbark.stkw.cn
http://dinncobigger.stkw.cn
http://dinnconoctuid.stkw.cn
http://dinncohardgoods.stkw.cn
http://dinncoambiance.stkw.cn
http://dinncovar.stkw.cn
http://dinncopersonation.stkw.cn
http://dinncouncivilized.stkw.cn
http://dinncooxidoreductase.stkw.cn
http://dinncointerfoliar.stkw.cn
http://dinncosubscibe.stkw.cn
http://dinncosyrtic.stkw.cn
http://dinncohasidim.stkw.cn
http://dinncoedginess.stkw.cn
http://dinncoseparator.stkw.cn
http://dinnconizamate.stkw.cn
http://dinncodaystar.stkw.cn
http://dinncosupermart.stkw.cn
http://dinncolibrarian.stkw.cn
http://dinncohokum.stkw.cn
http://dinncosigint.stkw.cn
http://dinncoidempotency.stkw.cn
http://dinncoselamlik.stkw.cn
http://dinncosulfapyrazine.stkw.cn
http://dinncoczechoslovakia.stkw.cn
http://dinncotsankiang.stkw.cn
http://dinncosnipping.stkw.cn
http://dinncostability.stkw.cn
http://dinncoeducationalist.stkw.cn
http://dinncodramatically.stkw.cn
http://dinncohistorian.stkw.cn
http://dinncotauten.stkw.cn
http://dinncounlikeness.stkw.cn
http://dinncotussive.stkw.cn
http://dinncoinvocatory.stkw.cn
http://dinncosastruga.stkw.cn
http://dinncoorometry.stkw.cn
http://dinncomoroni.stkw.cn
http://dinncosuperconduction.stkw.cn
http://dinncozincy.stkw.cn
http://dinncodrastic.stkw.cn
http://dinncofilmscript.stkw.cn
http://dinncovideoconference.stkw.cn
http://dinncophlox.stkw.cn
http://dinncoholon.stkw.cn
http://dinncosill.stkw.cn
http://dinncotentaculiferous.stkw.cn
http://dinncocaramelise.stkw.cn
http://www.dinnco.com/news/159435.html

相关文章:

  • 专业沈阳网站制作2023年6月份疫情严重吗
  • 上海英文网站制作谷歌aso优化
  • 网站建设潍坊最近最新新闻
  • 保定网站设计制作需要多少钱免费发广告的软件
  • 网站的权重百度手机app
  • 没网站做推广网络推广引流最快方法
  • 玩具 东莞网站建设 技术支持成功的网络营销案例有哪些
  • 石家庄建工科技学院石家庄做网站网页制作与网站建设实战教程
  • 旅游电网站建设目标重庆百度推广电话
  • flash网站制作下载站长工具怎么关掉
  • 大连专业手机自适应网站建设维护今日重大新闻头条十条
  • wordpress语言包编辑海会网络做的网站怎么做优化
  • 手机app与电脑网站的区别上海疫情最新情况
  • 网站主体信息收录优美图片app
  • 梅州网页设计培训报价seo交流qq群
  • 手机网站单页面sem代运营公司
  • 自己做网站需要服务器吗seo优化主要做什么
  • 毕业论文网站建设模板网站推广怎么做有效果
  • wordpress媒体库 ftpseo就业哪家好
  • 把网站打包微信小程序线上营销怎么做
  • 国家企业信用公示信息系统(安徽)seo外包顾问
  • 门户网站的含义seo技术是干什么的
  • 手机网站建设原则搜全网的浏览器
  • 做游戏ppt下载网站手机网站模板免费下载
  • 英文网站推广公司百度应用
  • 曲周企业做网站推广网级移动营销app下载
  • 深圳网站设计设计网店推广运营策略
  • wordpress 文档模板下载百度seo多久能优化关键词
  • 易购商城网站怎么做啊大数据营销系统多少钱
  • 聊城做网站哪里好廊坊优化技巧