上下文
上下文:相当于一个容器,保存了Flask程序运行过程中的一些信息。
Flask有两种上下文:请求上下文和应用上下文。
## 请求上下文
在flask中,可以直接在视图函数中使用request这个对象进行获取相关数据,而request就是请求上下文的对象,保存了当前本次请求的相关数据,请求上下文的对象有:request,session。
request:封装了HTTP请求的内容,针对的是http请求,举例:user = request.args.get('user'),获取的是get请求的参数。
session:用来记录请求会话中的信息,针对的是用户信息。举例:session['name'] = user.id,可以记录用户信息,还可以通过session.get('name')获取用户信息。
请求上下文:request(记录客户端和服务端交互的数据)
from flask import Flask,request
app = Flask(__name__)
# 请求上下文对象:request和session
# rquest是Flask内置的请求上下文对象
# request对象常用的属性:args/form/method/url/headers/cookies
# args:查询字符串,url地址栏中,?后面,以=号进行传值,&进行分隔的数据
# request的基本用法:args
@app.route('/')
def index():
#获取get请求的查询字符串参数
# 前端的url请求地址:http://www.127.0.0.1/?name = wax
# 此时下面的代码会在控制台输出wax。
name = request.args.get('name')
print('name')
# 输出url地址
print(request.url)
# 输出http的请求方法
print(request.method)
# 输出请求头、
print(request.headers)
# 输出表单参数的请求,表单的存储是以key/value的形式存储的。即 'name' = 'wax'
name = request.form.get('name')
print(name)
return 'hello world'
# form是指表单参数的请求
@app.route('/form/')
def demo_form():
return 'demo_form'
if __name__ == '__main__':
app.run()
请求上下文:session
应用上下文:flask程序运行过程中的信息
它的主要作用是帮助request获取当前的应用,随request而生,随rewquest而灭。有的文档会介绍说这是一个全局变量,但是具体来说是一个线程内部的全局变量。可以用来记录项目日志。
g变量:
也是flask程序全局的一个临时变量,临时传递一些数据。