首页 > 解决方案 > 如何将烧瓶/jinja2 变量传递给 js 脚本?

问题描述

我正在尝试编写一个脚本,该脚本从烧瓶应用程序中获取用户名并自动将其呈现为模板。基本上我在layout.html中有这一行:

<div class="sidebar-heading" id= "my_username"> {% block sidebar %} Start Bootsrap {% endblock %} </div>

然后我的主页index.html获取用户名:

{% block sidebar %} {{ username }} {% endblock %}
 <script src= "static/js/user_name.js"> </script>

我想将该数据存储在 js 中并将其打印到其他模板。用户名.js

var username = document.getElementById('my_username').innerHTML;

document.querySelector("#insert_user").innerHTML = username.innerHTML

当我将该值传递给新模板时:

 {% block sidebar %}
     <div id = "insert_user" > </div>
    {% endblock %}
<script src= "static/js/user_name.js"> </script>

打印到新 html 页面的输出显示“未定义”

我做错了什么?谢谢!

标签: javascripthtmlflask

解决方案


如果我理解你的问题,把

<script>var username = "{{ username }}";</script>

在您的基本模板中应该使其可用于其他模板中的脚本。


推荐阅读