项目印记
预测未来的最好办法,就是把它创造出来。--艾伦.凯(美)
Flask-Form表单的使用
1、安装flask form插件pip install flask-wtf
2、表单常用的字段

3、在forms.py文件中导入form表单相关模块,并定义一个Form类
import wtforms # 定义字段
from flask_wtf import FlaskForm # 定义表单
from wtforms import validators # 定义校验
from FlaskStudent.models import Course
class TeacherForm(FlaskForm):
"""
form字段的参数
label=None, 表单的标签
validators=None, 校验,传入校验的方法
filters=tuple(), 过滤
description='', 描述
id=None, html id
default=None, 默认值
widget=None, HTML样式
render_kw=None, HTML属性 参数
"""
gender = wtforms.SelectField(
label="教师性别",
render_kw={
"class": "form-control",
},
choices=[
("1","男"),
("2","女")
]
)
4、视图路由文件中定义一个视图函数,并实例化表单,用于前端渲染
@main.route('/cfeditor',methods=['GET', 'POST'])
@login_required
def cfeditor():
form = PostForm1()
if form.validate_on_submit():
postart = PostArt(title=form.title.data,body=form.body.data,cates_id=form.gender.data,
author=current_user._get_current_object())
db.session.add(postart)
db.session.commit()
body=form.body.data
# WARNING: use bleach or something similar to clean the data (escape JavaScript code)
# You may need to store the data in database here
postarts=PostArt.query.order_by(PostArt.timestamp.desc()).all()
flash('Your comment has been published.')
return redirect(url_for('.cfeditor',page=-1))
return render_template('index3.html',form=form)
5、index.html模版文件中引用
<form role="form" method="post">
<div class="form-group" >
{{ form.csrf_token }}
{{ form.gender.label }}{{ form.gender }}<br>
{{ form.title.label }}<br>
<input class="form-control" id="editor" name="title" data-validate="required" placeholder="Enter your title"><br>
{{ form.body.label }}<br>
{{ form.body }}<br>
{{ form.submit }}
</div>
</form>
参考网址:https://blog.csdn.net/z_ipython/article/details/98882921