我正在使用 jinja 并想将一个变量传递给一个 URL,但它现在正在发生。
Posted
技术标签:
【中文标题】我正在使用 jinja 并想将一个变量传递给一个 URL,但它现在正在发生。【英文标题】:I am using jinja and want to pass a variable into a URL but it is now happening. 【发布时间】:2017-02-03 16:16:20 【问题描述】:% for x in data %
<tr class="table-row">
<td> forloop.counter </td>
<td><label> x.0 </label></td>
<td><img src="% static 'lang/hi_IN/font/**x.1**' %"></td>
<td><label style="font-size:20px"> x.2 </label></td>
<td><input style="font-size:20px;text-align:center" type="text" value=x.2 size=3 title="Text"></td>
<td><label> x.3</label></td>
</tr>
% endfor %
我想将这个 x.1 值传递给 url,我该怎么做呢?值 0f x.1 类似于 images/1.jpg。
【问题讨论】:
你说你用的是jinja2但是% static ... %
是DTL语法,那是哪一种呢?
@polku 那我应该用什么代替% static ... %
【参考方案1】:
我是 jinja2 模板的新手,我主要使用 Flask,但使用 jinja2 我会尝试这个:
<img src=" url_for('static', filename='lang/hi_IN/font/')x.1">
这是我在阅读 Django-Templates 中的 static (来自page)后得出的盲目猜测:
% load static %
<img src="% static "images/" %x.1" />
【讨论】:
这行得通。但是我之前也尝试了不同的可能性,并且有效。谢谢【参考方案2】:我不知道 Jinja2 中的 static
关键字。也许一切都简单得多:
<td><img src="lang/hi_IN/font/ x.1 "></td>
或者问题可能更深。你实现了服务方法吗?它应该看起来像:
@app.route('/media/<path:filename>')
def media(filename):
return send_from_directory(app.config['MEDIA_FOLDER'], filename.encode(app.config['ENCODING']))
【讨论】:
这在语法上是正确的。那么,您对静态服务有什么看法? This 链接可能有用。【参考方案3】:我从未使用过 jinja 或 django,但我相信您只需要将变量与字符串分开即可。
<td><img src="% static 'lang/hi_IN/font/' + x.1 %"></td>
或 jinja 中的等价物。
【讨论】:
以上是关于我正在使用 jinja 并想将一个变量传递给一个 URL,但它现在正在发生。的主要内容,如果未能解决你的问题,请参考以下文章
使用 Jinja 渲染到 JS 会产生无效的数字而不是字符串