Python全系列 教程
3567个小节阅读:5931.8k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
context_processor:上下文处理器。使用这个钩子函数,必须返回一个字典。这个字典中的值在所有模版中都可以使用。
使用场景
这个钩子函数的功能是,如果一些在很多模版中都要用到的变量,那么就可以使用这个钩子函数来返回,而不用在每个视图函数中的render_template
中去写,这样可以让代码更加简洁和好维护。
xxxxxxxxxx
from flask import Flask,request,session,current_app,url_for,g,render_template
import os
app = Flask(__name__)
app.config['SECRET_KEY']=os.urandom(24) #加盐 混淆原数据的作用
@app.route('/')
def hello_world():
print("hi")
session['uname']="sxt"
# return "hello world "
return render_template("index.html")
@app.route('/li')
def mylist():
print("mylist")
# print("直接取出",g.user)
if hasattr(g,"user"):
print("条件取出", g.user)
# return "hello world "
return render_template('list.html')
@app.before_request
def before_request():
# print('在视图函数执行之前执行的钩子函数')
# 场景:若用户已经登录了,验证时把用户名放入session中,之后取出来,放入钩子函数,以后访问的视图函数中可直接取出来使用
uname = session.get('uname')
print(uname)
if uname:
g.user = uname
@app.context_processor
def context_processor():
if hasattr(g,'user'):
return {"current_user":g.user}
else:
return {}
if __name__ == '__main__':
app.run(debug=True)
实时学习反馈
1. 在Flask中,对context_processor钩子函数说法错误的是?
A 可以返回一个模板内容
B 返回的参数在每个模板中都可以使用
C 为了写的代码更简洁,易维护
D 返回的结果必须是字典类型
答案
1=>A