我在一个页面上呈现了大量帖子,用户可以在其中浏览列表并点击其中一个帖子并发送到“单个页面”以获取有关他们点击的任何产品的更多信息。此方法适用于第一个链接的每个链接。
无论何时我点击页面的第一个链接,我都会收到未找到:在服务器上找不到请求的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))
答案 0 :(得分:2)
无需手动构建网址。使用flask的内置函数url_for
的最佳方法是:
{{url_for('single2', num=i)}}
也无需手动计算i
,因为内置loop.index
和loop.index0
:
{% for row in data %}
<a href="{{url_for('single2', num=loop.index)}}">
我相信这应该始终创建一个有效的网址。