我正在使用 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,但它现在正在发生。的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jinja2 将值传递给 WTForms 字段

有没有办法将变量传递给 Jinja2 父母?

使用 Jinja 渲染到 JS 会产生无效的数字而不是字符串

将 Html 从模型/数据库和 jinja 中的 jinja 传递给 Jinja?

使用 Flask/Jinja2 将 HTML 传递给模板

无法将 jinja2 变量传递到 javascript 代码段中