Flask-WTF 对 WTForms 进行了封装使它能够在 Flask 框架中可以被调用,其中 Flask-WTF 的功能都是继承自 WTForms ,因此安装 Flask-WTF 时会自动安装 WTForms 模块。
使用 pip 进程安装pip install flask-wtf查看安装结果 二、创建表单类
表单类可以继承自Flask-WTF封装的FlaskForm类,可以从wtforms导入表单字段的类型,如下表单类的创建:
# -*- Coding: utf-8 -*-from flask_wtf import FlaskFormfrom wtforms import StringFIEld,RadioFIEld,DateFIEld,DecimalFIEld,SelectFIEldclass EmployeeForm(FlaskForm): name = StringFIEld('姓名') gender = RadioFIEld('性别',default='男') job = StringFIEld('职位') birthdate = DateFIEld('出生日期') IDCard = StringFIEld('身份z号') address = StringFIEld('地址') salary = DecimalFIEld('工资') department = SelectFIEld('部门')三、创建视图方法
根据创建好的表单类,我们就可以创建我们的视图函数,来处理和呈现我们的代码逻辑:
# -*- Coding: utf-8 -*-from flask import render_templatefrom flask.vIEws import MethodVIEwfrom pms.forms import EmployeeFormclass EmployeeEditOrCreateVIEw(MethodVIEw): def get(self,ID=None): form = EmployeeForm() return render_template('admin/emp-create-or-edit.HTML',form=form) def post(self,ID=None): pass# 添加视图函数规则,并添加视图函数的endpointemployee.add_url_rule('/create_or_edit/<ID>',vIEw_func=EmployeeEditOrCreateVIEw.as_vIEw('emp_create_or_edit'))四、前台页面展示
在前台页面我们就可以使用我们传递的表单类进行form表单控件的替换了:
<form role="form" method="post" action="{{ url_for('admin.emp_add') }}"> {# 姓名 #} <div > {# <label for="name" >姓名</label>#} {# 使用flask-wtf表单控件之后,label标签也可以省略#} {{ form.name.label() }} <div > {# <input type="text" ID="name" name="name">#} {# 如果你希望某些控件的属性也添加进来,可以直接在name中加入,方式如下:#} {{ form.name() }} </div> </div></form>
展示效果:
五、补充Flask-WTF 默认为每个表单启用了 CSRF 保护,它会为我们自动生成 CSRF 令牌。在Flask-WTF 中默认情况会使用程序密钥对 CSRF 令牌进行签名,所以我们需要为程序设置密钥:
app.secret_key = 'HEnjsa3IJ7HfF9KG'总结
以上是内存溢出为你收集整理的Flask-WTF的使用全部内容,希望文章能够帮你解决Flask-WTF的使用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)