WTForms表单应用

安装使用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')
发布了75 篇原创文章 · 获赞 10 · 访问量 4万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览