博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2.2程序和请求上下文
阅读量:4095 次
发布时间:2019-05-25

本文共 715 字,大约阅读时间需要 2 分钟。

————————————————————前言——————————————————————————————

前面我们说过, 程序实例通过路由来处理请求,那么视图函数就需要可以访问一些对象, 这样才能处理请求。

请求对象就是视图函数需要访问的一个对象, 它封装了客户端发送的http请求。

那么视图函数如何访问请求对象, 一个答案是作为参数穿进去, 但当视图函数需要访问多个对象时, 视图函数看起来会很复杂, 所以Flask使用上下文临时把某些对象变成全局可访问:

from flask import request  #请求对象

@app.route('/')

def index():

    user_agent = request.headers.get('User-Agent')

    return '<p>Your browser is %s</p>' %user_agent

一.Flask的两种上下文——程序上下文和请求上下文。

程序上下文提供两个变量:

    1. current_app: 当前激活的程序实例。也就是代码 app = Flask(__name__)的 app变量

    2. g: 处理请求是用作临时存储的对象。

请求上下文提供两个变量:

    1.request:请求对象, 封装了客户端的http请求

    2.session: 用户会话, 存储请求之间需要记住的值的字典

这四个变量非常重要, 如果你现在不理解没关系, 后面章节会举例说明。)

二.只有在上下文被推送以后才能使用上下文提供的变量:

没有推送上下文就使用变量就会出错:

    

先推送上下文再使用其提供的变量:

    

app.app_context() 可以获得一个程序上下文。

        

你可能感兴趣的文章
WPF中PATH使用AI导出SVG的方法
查看>>
QT打开项目提示no valid settings file could be found
查看>>
java LinkedList与ArrayList迭代器遍历和for遍历对比
查看>>
如何用好碎片化时间,让思维更有效率?
查看>>
带WiringPi库的交叉笔译如何处理二之软链接概念
查看>>
Java8 HashMap集合解析
查看>>
自定义 select 下拉框 多选插件
查看>>
fastcgi_param 详解
查看>>
poj 1976 A Mini Locomotive (dp 二维01背包)
查看>>
《计算机网络》第五章 运输层 ——TCP和UDP 可靠传输原理 TCP流量控制 拥塞控制 连接管理
查看>>
《PostgreSQL技术内幕:查询优化深度探索》养成记
查看>>
剑指_复杂链表的复制
查看>>
FTP 常见问题
查看>>
shell 快捷键
查看>>
MODULE_DEVICE_TABLE的理解
查看>>
No devices detected. Fatal server error: no screens found
查看>>
db db2_monitorTool IBM Rational Performace Tester
查看>>
postgresql监控工具pgstatspack的安装及使用
查看>>
【JAVA数据结构】双向链表
查看>>
【JAVA数据结构】先进先出队列
查看>>