Flask中基于类的视图传递数据的问题(可插入视图)

时间:2019-07-07 16:03:58

标签: python flask class-based-views

我似乎无法弄清楚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文档都似乎继续使用基于函数的视图。

谢谢!

0 个答案:

没有答案