我的Flask应用程序使用Flask-Babel和Flask-Login模块。 为了获得每个用户的语言设置,(Flask-Babel的)get_locale()方法引用current_user的language属性。 如何确保current_user对象处于活动状态并引用其属性?
这可以在CentOS 7,python 2.7,Apache 2.4上运行。 当current_user的language属性返回错误时,我使用try / except子句指向另一个对象。
这是每次到达请求时都会调用的get_locale()代码。
@babel.localeselector
def get_locale():
try:
lang = current_user.get_user_lang()
if lang:
return lang
except:
lang = config_json['REGION']
return lang
这是current_user的属性
class UserSession(UserMixin):
def __init__(self, user_id, authenticated="False"):
self.userData = dict()
self.userData['user_id'] = user_id
self.userData['authenticated'] = authenticated
self.userData['lang'] = config_json['REGION']
self.ex_info = {"ko": {}, "en": {}, "zh": {}}
def get_user_lang(self):
return self.userData["lang"]
我希望指出current_user的语言属性。 但有时它指的是config_json [“ REGION”]。
这在我的本地PC env(Windows)上不会发生,而只会在linux(CentOS7)上发生