You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:33:44