【发布时间】:2018-08-20 17:58:59
【问题描述】:
使用 jinja2 时,我的 html 模板出现错误。这是我得到的错误: TypeError: url_for() 只需要 1 个参数(给定 2 个)。该错误发生在 endif 语句之后的 2 个 td 标记中。我尝试在按钮内使用 onclick,这是我知道如何添加 url_for 标记的另一种方式。
这是我使用的模板:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table align="center" id="comic_list">
{% for value in bobby %}
<tr>
<td> {{ value[0]|safe }} </td>
<td> {{ value[1]|safe }} </td>
<td> {{ value[2]|safe }} </td>
<td> {{ value[3]|safe }} </td>
<td> {{ value[4]|safe }} </td>
<td> {{ value[6]|safe }} </td>
<td> {{ value[7]|safe }} </td>
</tr>
{% endfor %}
<tr>
<td><a href="{{url_for('test', next)}}"><button type="submit" value="Next">Next</button></a></td>
<td><a href="{{url_for('test', prev)}}"><button type="submit" value="Prev">Previous</button></a></td>
</tr>
</table>
</body>
<footer>
<p align="right">Date/Time: <span id="datetime"></span></p>
<script>
var dt = new Date();
document.getElementById("datetime").innerHTML = dt.toLocaleString();
</script>
</footer>
</html>
这里是使用的python代码:
@app.route('/test')
def test():
current_page = request.args.get('page', 1, type=int)
comic_dic = {}
per_page = 10
bob = create_bob('Book', 'Yes')
end = (current_page * per_page) + 1
if end > len(bob):
end = len(bob)
start = ((current_page - 1) * per_page) + 1
bob[1:] = sorted(bob[1:], key=lambda v: (v.publisher, v.sort, v.character, v.publication_date, int(v.volume)))
bobby = []
bobby.append(bob[0:1])
for result in bob[start:end]:
bobby.append(result)
next = 'page=' + str(current_page + 1)
prev = 'page=' + str(current_page - 1)
comic_dic['bob'] = bobby
comic_dic['next'] = current_page + 1
comic_dic['prev'] = current_page - 1
return render_template('yes.html', bobby=bobby, next=next, prev=prev)
谢谢扎克
【问题讨论】:
标签: html python-2.7 flask jinja2