19、flask-进阶-内置对象

内置对象

  1. g对象:

    • global 全局对象
    • g对象是专门用来保存用户的数据的
    • g对象在一次请求中的所有的代码的地方都是可以使用的
    • 突变变量存储位置的限制,为函数传递添加了新的方式,比如我们在before_request产生一个数据在后面需要使用,可以保存在g对象中,就可以在其他视图中使用这个数据
  2. requets:

    • 请求对象,可以获取客户端提交过来的所有请求信息
  3. session:

    • 会话技术,服务端绘画技术的接口
  4. 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)
posted @ 2024-07-28 13:52  little小新  阅读(8)  评论(0编辑  收藏  举报