19、flask-进阶-内置对象
内置对象
-
g
对象:- global 全局对象
- g对象是专门用来保存用户的数据的
- g对象在一次请求中的所有的代码的地方都是可以使用的
- 突变变量存储位置的限制,为函数传递添加了新的方式,比如我们在before_request产生一个数据在后面需要使用,可以保存在g对象中,就可以在其他视图中使用这个数据
-
requets
:- 请求对象,可以获取客户端提交过来的所有请求信息
-
session
:- 会话技术,服务端绘画技术的接口
-
current_app
:- app的配置信息。app对象获取,current_app
- 使用获取当前app需要注意,一定要在程序初始化完成之后
使用
views.py
import time
from flask import Blueprint, request, g, current_app
from .models import *
from .exts import cache #导入
#创建蓝图(路由)
blue = Blueprint('user', __name__)
# 使用缓存cache
@blue.route('/')
# 给视图函数加缓存 20s,在第一次访问这个路由函数的时候,会调用视图函数,然后把返回值缓存起来,以后再访问这个路由函数的时候,直接从缓存中取值,不用再调用视图函数了
@cache.cached(timeout=20)
def index():
print('index函数中的g.star的值是:',g.star)
return 'index'
# 钩子函数的使用 - 中间件
# before_request:每一次请求其他路由前都会先执行该函数
@blue.before_request
def before():
print('before_request')
# request对象
print(request.path) # 访问的路由
print(request.method) # 请求的方法
print(request.remote_addr) # 客户端的ip地址
# Flask的内置对象
# request :请求对象
# session :会话对象
# g :全局对象
# current_app :Flask应用对象
g.star = '杰伦'
print(g.star)
print(current_app)
print(current_app.config)