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

洛龙区网站设计建设微信朋友圈推广文案

洛龙区网站设计建设,微信朋友圈推广文案,建设银陕西省分行网站,简单网站建设公司请求上下文和应用上下文详解 一、背景二、什么是上下文2.1、请求上下文2.2、应用上下文2.3、两种上下文的底层逻辑 三、写在最后 一、背景 在如何实现异步发送邮件的时候,遇到过这样一个报错 RuntimeError: Working outside of request context.This typically me…

请求上下文和应用上下文详解

    • 一、背景
    • 二、什么是上下文
      • 2.1、请求上下文
      • 2.2、应用上下文
      • 2.3、两种上下文的底层逻辑
    • 三、写在最后

一、背景

在如何实现异步发送邮件的时候,遇到过这样一个报错

RuntimeError: Working outside of request context.This typically means that you attempted to use functionality that
needed an active HTTP request. Consult the documentation on testing
for information about how to avoid this problem.

当时虽然是在请求里使用的curent_app方法,已经有了请求上下文和应用上下文,但是任然报错,终究原因是没有记住文档上说的current_app的含义,它只是个代理,每个线程都是隔开的,一个线程一个id;它是根据id去找的,就好比说一开始current_app的id是1,然后新开了一个线程,新线程的id是2,那我在2里使用1,肯定就找不到喽,如何解决文档上也有说,使用current_app._get_current_object()就可以了,
在这里插入图片描述
代码里就是这样,而不是直接传递current_app
在这里插入图片描述

二、什么是上下文

上下文是 context 直译的叫法,在程序中用来表示代码执行过程中所处的前后环境,比如在文件操作时,文件需要打开关闭,而文件读写操作就处于文件操作的上下文环境中。

Flask中有两种上下文:请求上下文(文档点这里查看)和应用上下文(文档点这里查看),

  • 1、请求上下文(Request Context):当处理请求时,请求相关的信息会被存储在请求上下文中,例如请求参数、请求头、请求方法、当前的URL以及与请求相关的其他信息。请求上下文可以通过request对象访问。

  • 2、应用上下文(Application Context):应用上下文包含了关于应用的配置和状态的信息,例如配置对象、数据库连接、注册的蓝图等。在应用上下文中,可以使用current_app和g对象访问这些信息。

请求上下文和应用上下文是由Flask的调用栈自动创建和销毁的,不需要手动处理

2.1、请求上下文

在 flask 中,可以直接在视图函数中使用 request 这个对象进行获取相关数据,而 request 就是请求上下文的对象,保存了当前本次请求的相关数据,请求上下文对象有:request、session

  • request:封装了HTTP请求的内容,针对的是http请求。举例:user = request.args.get(‘user’),获取的是get请求的参数。
  • session:用来记录请求会话中的信息,针对的是用户信息。举例:session[‘name’] = user.id,可以记录用户信息。还可以通过session.get(‘name’)获取用户信息。

2.2、应用上下文

它的字面意思是 应用上下文,但它不是一直存在的,它只是request context 中的一个对 app 的代理(人),所谓local proxy。它的作用主要是帮助 request 获取当前的应用,它是伴 request 而生,随 request 而灭的。
类型是LocalProxy,像全局变量一样工作,但只能在处理请求期间且在处理它的线程中访问,返回的栈顶元素不是应用上下文,而是flask的应用实例对象。

应用上下文的封装 = flask核心对象+和外部协作对象(在flask封装对象上再添加push、pop等)(请求上下文同理)
应用上下文是存放到一个 LocalStack 的栈中。和应用app相关的操作就必须要用到应用上下文。

2.3、两种上下文的底层逻辑

两者的底层逻辑可以参考这里大佬详解1和大佬详解2,以为已经有了请求上下文,为什么还要有应用上下文,这大佬的文章里也有解释:
在这里插入图片描述

三、写在最后

这是我比较懒的一次,因为太偏底层,我也讲述不出来,只能前人栽树后人乘凉了哈

http://www.dinnco.com/news/7167.html

相关文章:

  • 石家庄网站建设报价企业宣传推广方案
  • 关于网站建设的可行性报告北京网站优化合作
  • 深圳室内设计公司排行成都seo服务
  • 南通网站定制搭建深圳优化网站方法
  • 在哪个网站做兼职靠谱市场策划方案
  • 在线建站网络营销渠道名词解释
  • 昆山网站建设详细方案网络推广有哪些途径
  • 西宁做腋臭北大网站Y百度经验官网登录
  • 营销型企业网站建设的流程是营业推广方案怎么写
  • 有没有教做网站的app网站的优化
  • 深圳互联网公司招聘信息亚马逊seo关键词优化软件
  • 寻找完善政府网站建设国外域名注册网站
  • 做影视剧组演员垂直平台网站交换链接适用于哪些网站
  • 怎么做网站文章伪原创赣州seo推广
  • 有哪个网站可以做链接站长之家关键词查询
  • 岳阳建设公司网站外链seo招聘
  • 做网站游戏推广赚钱百度指数峰值查询
  • 如何给网站做seo优化电商网站如何避免客户信息泄露
  • 人像写真短视频唐山seo快速排名
  • 外贸企业网站制作公司近期国内新闻摘抄
  • 广告电商怎么赚钱北京seo公司公司
  • 外贸页面网站制作无锡谷歌推广
  • 连云港做网站哪里好怎样做网站
  • 西安做网站价格线上推广的公司
  • 全网营销网站建设my63777免费域名查询2023年
  • 建设行业最新资讯动态网站哪里有竞价推广托管
  • 上海专业网站建设公司国外电商平台有哪些
  • 注册一个公司多少钱新乡网站优化公司推荐
  • 做杂志的模板下载网站长沙推广公司
  • wordpress一键分享seo营销培训咨询