flask web前端如何在{}内部使用{{}}

正常代码

<script>
    $(document).ready(function () {
        var update = setInterval(function () {
            {% for ip in lis %}
                $("#{{ ip[0] }}").load("/tools/state/",{"ip":"192.168.1.1" });
            {% endfor %}
        },1000);
    });
    {% for ip in lis %}
        {{ ip[0] }}
    {% endfor %}
</script>

里面{"ip":"192.168.1.1" }的IP段是想用传值的{{ ip[1] }}代替的可是直接这么写进去是不生效的,大概是因为外部已经有了{}了,这该怎么插入进去呢?

阅读 3.7k
1 个回答

在一本讲flask的书里面找到了答案,这种在html模板中写入语法的方式应该叫jinja语法(个人理解),jinja语法里可以使用for语句if语句等等,而我这里的需求就要用到jinja的过滤器,这里面有safe、default、float、int等等。我需要用到的就是tojson,写法:

<script>
    $(document).ready(function () {
        var update = setInterval(function () {
            {% for ipl in lis %}
                $("#{{ ipl[0] }}").load("/tools/state/",{{ {'ip':ipl[1]} | tojson }});
            {% endfor %}
        },5000);
    });
</script>

这么写就能保证我传过去的对象是可被json模块序列化的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题