如何在Flask Appbuilder应用中获取当前语言?
获取Flask-AppBuilder应用的当前语言
嘿,刚好我对Flask-AppBuilder的多语言机制比较熟悉,给你几个简单靠谱的方法来获取当前应用的语言:
方法1:使用Flask-Babel的get_locale()
Flask-AppBuilder底层依赖Flask-Babel处理国际化,所以直接用Flask-Babel提供的工具函数最直接:
- 先导入函数:
from flask_babel import get_locale - 在你的视图方法中调用,通过
.language属性拿到语言代码(比如en、fr、ru):current_lang = get_locale().language
方法2:使用AppBuilder实例的get_locale()
如果你已经在代码里导入了appbuilder对象(比如从你的app模块),也可以直接用它的内置方法:
- 用法示例:
from app import appbuilder current_lang = appbuilder.get_locale().language
完整示例代码
把它整合到你的method1里大概是这样:
from flask_appbuilder import BaseView, expose, has_access from flask_babel import get_locale from app import appbuilder class MyCustomView(BaseView): @expose('/method1/') @has_access def method1(self): # 获取当前语言 current_language = get_locale().language # 这里替换成你原来的逻辑,比如用当前语言做一些处理 return f"当前使用的语言是: {current_language}"
这两个方法本质是一致的,因为AppBuilder的get_locale()内部也是调用了Flask-Babel的同名函数,选哪个取决于你代码的上下文~
内容的提问来源于stack exchange,提问作者rahram
相关产品推荐
相关产品推荐

