如何在烧瓶中渲染表格?

时间:2015-12-28 04:14:25

标签: python flask

我是新手,想要渲染表格。我遇到了相同的代码但无法呈现它,因为我不知道如何以及如何运行

from collections import namedtuple
from wtforms import Form, FieldList, BooleanField, HiddenField, FormField
from webob.multidict import MultiDict

GroceryItem = namedtuple('GroceryItem', ['item_id', 'want', 'name'])

class GroceryItemForm(Form):
    item_id = HiddenField()
    want = BooleanField()

class GroceryListForm(Form):
    def __init__(self, *args, **kwargs):
        super(GroceryListForm, self).__init__(*args, **kwargs)

        # just a little trickery to get custom labels
        # on the list's checkboxes
        for item_form in self.items:
            for item in kwargs['data']['items']:
                if item.item_id == item_form.item_id.data:
                    item_form.want.label ='' 
                    item_form.label = item.name

    items = FieldList(FormField(GroceryItemForm))

item1 = GroceryItem(1, True, 'carrots')
item2 = GroceryItem(2, False, 'cornmeal')

data = {'items': [item1, item2]}

form = GroceryListForm(data=MultiDict(data))

print form.items()

我希望呈现一个表单,其中用户选择一个选项并将其提交给数据库。

1 个答案:

答案 0 :(得分:3)

Flask是一个MVC,因此需要一个模型,一个视图和一个控制器。您创建的只是表单的模型和一些控制器代码来创建购物清单。但是,只是打印表单项不会呈现任何内容。您需要创建一个使用Jinja2或任何其他模板语言

呈现表单的视图

由于您使用的是FlaskWTForms,您可以在此处查看其文档: https://flask-wtf.readthedocs.org/en/latest/index.html

如果您是Flask的新手,您还可以查看Miguel Grinberg的优秀教程: http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iii-web-forms