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

Flask中如何显示Jinja变量名而非其对应值?

解决方法
  • 直接写入变量名字符串:
    不需要使用Jinja的变量渲染语法{{ }},直接把变量名作为普通文本写在onclick事件里。比如:

    {% set x = 0 %}
    <button onclick="myFunction(x)">点击按钮</button>
    

    这样Flask渲染后,HTML里就会是myFunction(x),而不是替换成变量的值0。

  • 动态传递变量名(适用于变量名不固定的场景):
    如果你的变量名是动态生成的(比如从后端传递过来的字符串),可以直接把这个字符串输出到JS代码中。例如:

    # Flask后端代码
    @app.route('/')
    def index():
        var_name = 'x'
        return render_template('index.html', var_name=var_name)
    

    模板中这样写:

    <button onclick="myFunction({{ var_name }})">点击按钮</button>
    

    渲染后会得到myFunction(x)。如果需要传递字符串形式的变量名(比如JS中需要接收字符串),可以用tojson过滤器确保格式正确:

    <button onclick="myFunction({{ var_name|tojson }})">点击按钮</button>
    

    渲染后是myFunction("x")。

  • 使用raw标签避免Jinja解析(特殊场景):
    如果你需要输出Jinja语法本身(比如要显示{{ x }}这个文本),可以用raw标签包裹:

    {% set x = 0 %}
    <button onclick="myFunction({% raw %}{{ x }}{% endraw %})">点击按钮</button>
    

    这会渲染成myFunction({{ x }}),适合展示模板语法的场景,并非当前需求的最优解。

内容的提问来源于stack exchange,提问作者EveningTangerine

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:54:18