最近,我创建了一个使用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
调用它,那么我怎么能动态创建呢?如何在表格列表中使用复选框?