【发布时间】:2019-06-27 09:12:50
【问题描述】:
我希望我的应用程序能够检测用户的语言以向他们提供相应的页面。我的想法是使用@before.request 读取Accepted-Languages 标头,将其与应用程序支持的语言进行匹配,并在需要时设置cookie,但似乎最后一步无法实现。
这是代码:
@app.before_request
def before_request_callback():
if request.cookies.get('lang'):
pass
else:
lang = request.accept_languages.best_match(supported_languages)
print(lang)
#I would like to set the cookie here
我考虑直接在装饰器 (resp.set_cookie()) 中设置响应对象中的 cookie,因此将我的应用程序中的所有返回重新格式化为如下所示
@app.route("/")
def hello():
resp = make_response(render_template('index.html'))
return resp
也许能够获取 cookie 并将其附加到此响应中,但由于响应是随后在 endpoitn 函数中创建的,所以我也不知道该怎么做。
我也想过直接在装饰器中创建响应,但是由于我需要返回条件,我不知道这是否可能
【问题讨论】:
标签: python python-3.x flask