我似乎无法弄清楚Flask中基于类的视图如何工作。我发现documentation令人困惑,并且没有太多帮助。
我的主要问题是我不知道如何处理提交的表单(例如)并返回不同的模板,这在函数视图中没有太大问题:
@app.route('/', methods=['GET', 'POST'])
@app.route('/index', methods=['GET', 'POST'])
def index():
form = LoginForm()
if form.validate_on_submit():
#...processing request...
user = form.data.username
return render_template('second_page.html', user = user)
payload = {
'form': form,
}
return render_template('index.html', payload=payload)
我无法用文档中的示例弄清楚:
from flask.views import View
class ListView(View):
def get_template_name(self):
raise NotImplementedError()
def render_template(self, context):
return render_template(self.get_template_name(), **context)
def dispatch_request(self):
context = {'objects': self.get_objects()}
return self.render_template(context)
class UserView(ListView):
def get_template_name(self):
return 'users.html'
def get_objects(self):
return User.query.all()
使用这些示例,我可以使用单个模板,但是一旦需要在它们之间传递数据,我就会陷入困境。 有人可以帮我这个忙,或者指向一些好的文档或教程吗?似乎并没有那么多,甚至在讨论了基于类的视图之后,甚至大多数Flask文档都似乎继续使用基于函数的视图。
谢谢!