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

网站开发运维机构设置甘肃交通工程建设监理有限公司网站

网站开发运维机构设置,甘肃交通工程建设监理有限公司网站,服装企业网站建设的目的,html菜鸟工具✨✨ 欢迎大家来到景天科技苑✨✨ #x1f388;#x1f388; 养成好习惯#xff0c;先赞后看哦~#x1f388;#x1f388; #x1f3c6; 作者简介#xff1a;景天科技苑 #x1f3c6;《头衔》#xff1a;大厂架构师#xff0c;华为云开发者社区专家博主#xff0c;… ✨✨ 欢迎大家来到景天科技苑✨✨ 养成好习惯先赞后看哦~ 作者简介景天科技苑 《头衔》大厂架构师华为云开发者社区专家博主阿里云开发者社区专家博主CSDN新星创作者掘金优秀博主51CTO博客专家等。 《博客》Python全栈前后端开发人工智能js逆向App逆向网络系统安全数据分析Djangofastapiflask等框架linuxshell脚本等实操经验网站搭建面试宝典等分享。 所属的专栏flask框架零基础进阶应用实战教学 景天的主页景天科技苑 文章目录 执行上下文[context]请求上下文(request context)应用上下文(application context)current_appg变量两者区别 总结 执行上下文[context] 执行上下文即语境语意在程序中可以理解为在代码执行到某一行时根据之前代码所做的操作以及下文即将要执行的逻辑可以决定在当前时刻下可以使用到的变量或者可以完成的事情。 Flask中提供的执行上下文对象相当于一个容器保存了 Flask 程序运行过程中的一些信息[变量、函数、类与对象等信息]。 Flask中有两种上下文请求上下文(request context)和应用上下文(application context)。 application 指的就是当服务端调用app Flask(__name__)创建的这个对象apprequest 指的是每次客户端发生http请求时WSGI server(比如uwsgi/gunicorn)调用Flask.__call__()之后在Flask对象内部创建本次客户端的Request对象application 表示用于响应WSGI请求的应用本身request 表示服务端每次响应客户端的http请求application的生命周期大于request一个application存活期间可能发生多次http请求所以也就会有多个request 请求上下文(request context) 思考在视图函数中如何取到当前请求的相关数据比如请求地址请求方式cookie等等 在 flask 中可以直接在视图函数中使用 request 这个对象进行获取相关数据而 request 就是请求上下文提供的对象 保存了当前本次请求的相关数据请求上下文提供的对象有request、session 所以每次客户端发生不同的HTTP请求时得到的request和session的对象都是同一个但是内部的数据都是不一样的。 request 封装了HTTP请求的内容针对的是http请求。举例user request.args.get(‘user’)获取的是get请求的参数。 session 用来记录请求会话中的信息针对的是会话状态。举例session[‘name’] user.id可以记录用户的状态信息。还可以通过session.get(‘name’)获取用户的状态信息。 注意 请求上下文提供的变量/属性/方法/函数/类与对象只能在视图中或者被视图调用的地方使用。否则报错 案例剖析 from flask import Flask, request, sessionapp Flask(__name__)app.config[SECRET_KEY] my secret keydef test():print(request) # 请求上下文所提供的对象[request或session]只能被视图直接或间接调用app.route(/) def index():print(request)print(session)#外部函数在视图函数里面调用也能使用request或sessiontest()return okif __name__ __main__:# print(request) # 没有发生客户端请求时调用request会超出请求上下文的使用范围app.run(host0.0.0.0, port5000, debugTrue)浏览器请求 看下终端打印可以看到当在外部函数中定义上下文且在视图函数中调用时是可以执行的 应用上下文(application context) 它的字面意思是 应用上下文但它不是一直存在的它只是request context 中操作当前falsk应用对象 app 的代理对象就是所谓本地代理(local proxy)。 它的作用主要是帮助 request 获取当前的flask应用相关的信息它是伴 request 而生随 request 而灭的。 应用上下文提供的对象有current_appg current_app 应用程序上下文,用于存储flask应用实例对象中的变量可以通过current_app.name打印当前app的名称也可以在current_app中存储一些变量例如 应用的启动脚本是哪个文件启动时指定了哪些参数加载了哪些配置文件导入了哪些配置连接了哪个数据库有哪些可以调用的工具类、常量当前flask应用在哪个机器上哪个IP上运行内存多大 案例剖析 from flask import Flask,request,session,current_app,g# 初始化 app Flask(import_name__name__)# 声明和加载配置 class Config(object):DEBUG True app.config.from_object(Config)# 编写路由视图 app.route(rule/) def index():#打印应用上下文对象print(应用上下文对象:,app)#判断我们设置的app与falsk内置的current_app是否相同print(app current_app) #True# 应用上下文提供给我们使用的变量也是只能在视图或者被视图调用的地方进行使用# 但是应用上下文的所有数据来源于于app每个视图中的应用上下文基本一样print(current_app.config) # 获取当前项目的所有配置信息print(current_app.url_map) # 获取当前项目的所有路由信息return h1hello world!/h1if __name__ __main__:#current_app在全局下是不能执行的如果非要执行需要创建个本地上下文环境# with app.app_context(): # 构建一个应用上下文环境# print(current_app)# 运行flaskapp.run(host0.0.0.0)浏览器访问后看终端打印 g变量 g 作为 flask 程序全局的一个临时变量,充当者中间媒介的作用,我们可以通过它传递一些数据g 保存的是当前请求的全局变量不同的请求会有不同的全局变量通过不同的thread id区别 g.name‘abc’ # name是举例实际要保存什么数据到g变量中可以根据业务而定你可以任意的数据进去 当flask项目越做越大针对不同的文件在同一次请求中可以使用g变量来共享数据。 注意 客户端不同的请求会有不同的全局变量g或者说每一个客户端都拥有属于自己的g变量。 案例剖析 from flask import Flask, current_app, gapp Flask(__name__)app.config[SECRET_KEY] my secret keyapp.route(/) def index():print(app current_app) # current_app就是app应用实例对象在视图中的本地代理对象print(g) # 全局数据存储对象用于保存服务端存储的全局变量数据[可以理解为用户级别的全局变量存储对象]t1()t2()return okdef t1():# 存储数据g.user_id 100print(t1执行了)def t2():# 提取数据print(t2中获取到的数据:,g.user_id)if __name__ __main__:app.run(host0.0.0.0, port5000, debugTrue)浏览器访问查看终端打印 可以看到在t1中定义的数据通过g变量可以在t2函数中获取 两者区别 请求上下文保存了客户端和服务器交互的数据一般来自于客户端的HTTP请求。 应用上下文flask 应用程序运行过程中保存的一些配置信息比如路由列表程序名、数据库连接、应用信息等 应用上下文提供的对象可以直接在请求上下文中使用但是如果在请求上下文之外调用则需要使用 with app.app_context()创建一个应用上下文环境才能调用。 总结 综上就是flask请求上下文和应用上下文原理分析和案例应用分享 请求上下文对象保存了 Flask 程序运行过程中的一些信息[变量、函数、类与对象等信息]。 应用程序上下文,用于存储flask应用实例对象中的变量可以通过current_app.name打印当前app的名称也可以在current_app中存储一些变量。 感兴趣的朋友可以一键三连flask持续更新中
http://www.dnsts.com.cn/news/29823.html

相关文章:

  • 响应式英文网站建设自己做网站的服务器
  • 重庆那家做网站做得好怎么做wep网站
  • 爱站网做网站吗wordpress 同步
  • 北京网站建设策划建设公司潍坊住房公积金个人账户查询
  • 做网站最小的字体是多少wordpress 2m带宽 支持多少人
  • html网站地图系统开发需求文档
  • 漫画网站做任务给金币360建设网站免费下载
  • 做网站如何自己寻找客户泰国vps
  • 网站规划与开发技术属于什么大类扶贫832网络销售平台
  • 云梦网站怎么做浮窗电商平台都有哪些
  • 网站开发PHP招聘wordpress3.9zhcn
  • wordpress添加面包屑导航以下属于网站seo的内容是
  • 网站建设就找奇思网络贵阳市有翻译资质的公司
  • 中国最火的网站wordpress 栏目页
  • 青岛通力建设集团网站淮南网站建设公司
  • 高邮企业网站建设公司哪家便宜张雪峰谈软件工程专业
  • asp网站怎么做熊掌号网站
  • 国内大型网站建设公司国美电器如何进行网站的建设与维护
  • 网站备案收费幕布建设棋牌网站流程
  • 网站打开慢什么原因呢洛阳霞光建设网站
  • 网站常用模块功能说明不会编程怎么做网站
  • 网站建设维护公司地址美发网站带手机版
  • 有专业做网站的学校吗小程序企业网站
  • 哪个公司做网站便宜浏览器网址导航
  • 汝州市建设局网站长链接变短链接在线生成
  • 经营范围里的网站建设WordPress京东淘宝主题
  • 如何选择家居网站建设小企业做网站怎么做
  • 做网站开票内容是什么株洲网站建设报价方案
  • 网站开通支付宝支付自己建设公司网站
  • 北京高端企业网站建设汕头网站外包