3

最近,我创建了一个使用 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

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

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

在烧瓶中forms.py我现在不知道如何首先创建表列表以及它是如何调用的.html,那么我该如何动态创建呢?复选框如何以表格列表形式工作?

4

0 回答 0