我是 Flask、Jinja2 和 HTML 模板的新手,我正在尝试学习如何在控制器和视图之间来回传递信息。基本上,我有一个事件日历。每个事件名称都是一个超链接,用于url_for转至包含有关该事件的更多信息的视图。但是,尽管我可以轻松地将自定义事件对象列表传递到 HTML 文件中,但我不知道如何将选定的事件对象返回到控制器。据我所知,该对象正在变成一个字符串。下面的简化代码。
app.py
from flask import Flask, render_template, url_for
app = Flask(__name__)
class Event(object):
def __init__(self, name, date):
self.name = name
self.date = date
events = [Event('event1', '2020-04-11')]
@app.route('/')
def index():
return render_template('index.html', events=events)
@app.route('/event/<event>')
def event(event):
return render_template('event.html', event=event)
索引.html
<!DOCTYPE html>
<html>
<body>
{% for event in events %}
<a href={{ url_for('event', event=event) }}>{{ event.name }}</a>
{% endfor %}
</body>
</html>
事件.html
<!DOCTYPE html>
<html>
<body>
<p>{{ event.name }} {{ event.date }}</p>
</body>
</html>
单击该事件会将我带到一个空白页面,大概是因为 event.html 正在尝试获取不存在的字符串对象的属性。
当将 python 对象传递到视图中如此简单时,似乎有一种同样简单的方法可以将其从视图中返回。请赐教!
慕娘9325324
元芳怎么了
慕妹3146593
相关分类