为什么这个链接不起作用......?

时间:2016-10-03 22:17:47

标签: python flask jinja2

我在一个页面上呈现了大量帖子,用户可以在其中浏览列表并点击其中一个帖子并发送到“单个页面”以获取有关他们点击的任何产品的更多信息。此方法适用于第一个链接的每个链接。

无论何时我点击页面的第一个链接,我都会收到未找到:在服务器上找不到请求的URL。如果您手动输入了网址,请检查拼写,然后重试。错误。

我为HMTL / jinja设置的逻辑是(一切都正常关闭,为了简洁起见,我正在削减一些不必要的代码):

{% set i = 0 %}
   {% for row in data %}
      {% set i = i + 1 %}

                       <a href="/iLike/{{ i }}">
                                <li>content</li>
                       </a>

和我的python代码:

@app.route('/iLike/<int:num>', methods=['GET','POST'])
def single2(num):
  try:
    loc = session.get('loc')
    transType = session.get('transType')
    data = singlesQuery()


    return render_template('single.html', loc=loc,transType=transType,data=data[num-1])
except Exception as e:
    return (str(e))

1 个答案:

答案 0 :(得分:2)

无需手动构建网址。使用flask的内置函数url_for的最佳方法是:

{{url_for('single2', num=i)}}

也无需手动计算i,因为内置loop.indexloop.index0

{% for row in data %}
    <a href="{{url_for('single2', num=loop.index)}}">

我相信这应该始终创建一个有效的网址。