我在我的视图文件中有一个功能,我需要在我的头文件中使用,这对所有模板都是通用的,
@app.route('/admin/')
def adminhome():
row1 =''
try:
db = connect_db()
rows=g.db.query("SELECT * FROM `auth_user` order by id DESC ")
rows1 = list(rows)
data=''
if len(rows1) > 0:
users = rows1
#close_db(db)
except Exception as e:
users = e
return render_template('admin/index.html',users=users)
但此功能仅适用于
@ app.route( '/管理/')
如何为所有网址注册此功能
答案 0 :(得分:1)
尝试app.context_processor:http://flask.pocoo.org/docs/templating/#context-processors
示例:
def adminhome():
row1 =''
try:
db = connect_db()
rows=g.db.query("SELECT * FROM `auth_user` order by id DESC ")
rows1 = list(rows)
data=''
if len(rows1) > 0:
users = rows1
#close_db(db)
except Exception as e:
users = e
return users
@app.context_processor
def inject():
return dict(adminhome=adminhome)
使用此管理员可以在所有模板中使用,返回“用户”,您可以按照自己的方式呈现“用户”。
希望有所帮助......
答案 1 :(得分:0)
您必须将此功能设为装饰器,然后在其他视图功能中使用它。例如。这是我解决这个问题的一部分(不完美!这只是一个片段):
def login_required(func):
@wraps(func)
def wrapped():
if "username" in session:
return func()
else:
return redirect(url_for('startpage'))
return wrapped
@app.route('/admin/')
@login_required
def adminhome():
return render_template('admin/index.html',users=users)
@app.route("/hello_world")
@login_required
def hello():
return "hello world"
请注意,这不是一对一的现成示例。我只是给你一个使用它的模式,你必须自己解决,我建议你先阅读relevant portion of documentation of Flask