Jinja模板渲染数组数据时文件名空格不显示如何解决?
问题原因
这是HTML语法解析规则导致的:当HTML标签的属性值没有用引号包裹时,空格会被识别为不同属性的分隔符。你的Jinja模板中value、name、for等属性的变量都没有加引号包裹,渲染带空格的文件名deneme bosluk时,实际生成的HTML代码是value=deneme bosluk,浏览器会将value属性的值识别为空格前的deneme,空格后的bosluk会被当成一个无效的独立属性,因此显示不全。
解决方法
- 给所有HTML属性的变量值外层包裹双引号,确保整个文件名被识别为完整的属性值
- 可选添加Jinja的
escape过滤器,对文件名中的特殊字符做转义处理,避免XSS风险和其他特殊字符解析异常
修正后的模板代码参考:
{%for i in range(0, len)-%} <input name="{{ ls[i] }}" type="submit" value="{{ ls[i] }}"> <input for="{{ ls[i] }}" name="{{ ls[i] }}_rm" type="submit" value="rm"> <br> {%endfor%}
内容的提问来源于stack exchange,提问作者Fquer
相关产品推荐
相关产品推荐

