我如何一次将变量传递给所有烧瓶路线?
How do i pass a variable to all flask routes once?
所以我有这个 Flask 应用程序,我需要将特定用户传递给所有路由,因为应用程序中的所有页面都需要特定用户来呈现模板。我不想像往常一样通过用户
return render_template('index.html',user=user)
因为我必须对 render_templates 中的所有路线重复同样的事情。
请问我该怎么做?
您可以通过使用以下实现创建自定义呈现模板函数来实现
from flask import render_template as real_render_template
from yourapp import user # Import the user variable or set it
def render_template(*args, **kwargs):
return real_render_template(*args, **kwargs, user=user)
也可以通过functools.partial
:
完成
from flask import render_template as real_render_template
from yourapp import user # Import the user variable or set it
from functools import partial
render_template = partial(real_render_template, user=user)
如果你想发送一个变量给所有routes/pages/templates。你可以在 flask
中使用会话
from flask import Flask,session
[...]
session['x'] = user
现在您可以在代码的任何地方使用它,使用会话的模板['x']
在模板中
{{session['x']}}
所以我有这个 Flask 应用程序,我需要将特定用户传递给所有路由,因为应用程序中的所有页面都需要特定用户来呈现模板。我不想像往常一样通过用户
return render_template('index.html',user=user)
因为我必须对 render_templates 中的所有路线重复同样的事情。 请问我该怎么做?
您可以通过使用以下实现创建自定义呈现模板函数来实现
from flask import render_template as real_render_template
from yourapp import user # Import the user variable or set it
def render_template(*args, **kwargs):
return real_render_template(*args, **kwargs, user=user)
也可以通过functools.partial
:
from flask import render_template as real_render_template
from yourapp import user # Import the user variable or set it
from functools import partial
render_template = partial(real_render_template, user=user)
如果你想发送一个变量给所有routes/pages/templates。你可以在 flask
中使用会话from flask import Flask,session
[...]
session['x'] = user
现在您可以在代码的任何地方使用它,使用会话的模板['x']
在模板中
{{session['x']}}