安装使用pip install
声明表单类,字段与model中字段相对应
from flask_wtf import Form
from wtforms import StringField,SelectField
##创建用户表单类,用户权限id外键,关联用户权限表id
class UserForm(Form):
name=StringField('用户名')
password=StringField('密码')
userlevel_id=SelectField('用户权限')
视图中使用
导入必要的库
##新增修改用户
class UserCreOrEdit(MethodView)
def get(self,id):
user=User()
if id:
user=db.session.query(User).get(id) ##创建user类实例,如果有id就取传过来的数据
form=UserForm(request.form,obj=user) ##将user中与form类相匹配的字段展示到前台
form.userlevel_id.choices=[(d.id,d.name) for d in db.session.query(Userlevel).all()] ##如果有下拉框等需要从数据库中同步显示的字段,创建完form后需要去查询该字段所有内容,不能在form类中查询,因为查询需要app上下文环境
return render_template('usercreoredit.html',form=form)
def post(self,id):
form=UserForm(request.form) #获取前台表单传过来的值
form.userlevel_id.choices = [(d.id, d.name) for d in db.session.query(Userlevel).all()]
user=User()
if id:
user=db.session.query(User).get(id)
form.populate_obj(user)#将form中同名字段塞进user
if not id:
db.session.add(user)
db.session.commit()
前台展示
form.name.label(class_='col-lg-2 col-sm-2 control-label')
form.name(class_='form-control')