如何在烧瓶中创建表格列表?

时间:2015-01-26 02:12:50

标签: python mysql forms flask-wtforms datagridviewcheckboxcell

最近,我创建了一个使用Flask的Python项目。在Flask中,表单和视图在两个.py文件中定义,然后在模板HTML中使用。

这是我的forms.py

from flask.ext.wtf import Form
from wtforms import StringField, SubmitField
from wtforms.validators import Required

class NameForm(Form):
    name = StringField('What is your name?', validators=[Required()])
    submit = SubmitField('Submit')

以下是我的观点(views.py

from flask import render_template, session, redirect, url_for,     current_app
from .. import db, smk
from ..models import User
from ..email import send_email
from . import main
from .forms import NameForm

@main.route('/', methods=['GET', 'POST'])
def index():
    form = NameForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.name.data).first()
        if user is None:
            user = User(username=form.name.data)
            db.session.add(user)
            session['known'] = False
            if current_app.config['FLASKY_ADMIN']:
                send_email(current_app.config['FLASKY_ADMIN'], 'New User','mail/new_user', user=user)
        else:
            session['known'] = True
        session['name'] = form.name.data
        return redirect(url_for('.index'))
    return render_template('index.html',form=form, name=session.get('name'),known=session.get('known', False))

这是我的模板(index.html

{% extends "base.html" %}
{% import "bootstrap/wtf.html" as wtf %}

{% block title %}Flasky{% endblock %}

{% block page_content %}
<div class="page-header">
    <h1>Hello, {% if name %}{{ name }}{% else %}Stranger{% endif %}!</h1>
    {% if not known %}
    <p>Pleased to meet you!</p>
    {% else %}
    <p>Happy to see you again!</p>
    {% endif %}
</div>
{{ wtf.quick_form(form) }}
{% endblock %}

现在我需要创建一个表格列表表单,它从MySQL数据库中查询,我还需要一个复选框,如:

selectall| id   | name    | value     
------------------------------------
checkbox | 1     | name1  | test1
------------------------------------
checkbox | 2     | name2  | test2
------------------------------------
checkbox | 3     | name3  | test3

submitbutton

我希望当我点击&#34;全选&#34;,所有项目都被选中或取消时,我希望它有效,当我点击某个项目的复选框时,该项目被选中。然后单击“提交”按钮,所选项目将作为更新数据库项目关联的条件。

此外,查询内容不固定。有些表包含4列,有些表包含7列或其他数字列。我必须动态创建表列表。

在烧瓶forms.py中我现在不知道如何首先创建表列表以及如何通过.html调用它,那么我怎么能动态创建呢?如何在表格列表中使用复选框?

0 个答案:

没有答案