Flask-WTF表单的使用方法

本文介绍了Flask-WTF,它是Flask框架的表单验证模块,支持热插拔。文章详细讲解了Flask-WTF的安装、字段类型、表单定义、验证序列、自定义验证、表单对象的属性和方法,以及如何在登录验证和AJAX请求中应用。同时提到了CSRF保护的启用和应用场景。
摘要由CSDN通过智能技术生成

flask_wtf是flask框架的表单验证模块,可以很方便生成表单,也可以当做json数据交互的验证工具,支持热插拔。

**安装
**


    pip install Flask-WTF

Flask-WTF其实是对wtforms组件的封装,使其支持对flask框架的热插拔。

简单使用


    # app.py
    from flask import Flask, current_app, request, render_template
    from forms import MyForm
    
    app = Flask(__name__,template_folder='static/html')
    @app.route('/',methods=['GET','POST'])
    def login():
      form = MyForm()
      if form.validate_on_submit():
        return 'OK'
      return render_template('forms/index.html', form=form)
    if __name__ == '__main__':
      app.run(host='127.0.0.1', port=80, debug=True)
    
    # forms.py
    from flask_wtf import FlaskForm
    from wtforms import StringField
    from wtforms.validators import DataRequired
    
    class MyForm(FlaskForm):
      name = StringField('name', validators=[DataRequired()])
    
    # forms/index.html
    <form method="POST" action="/">
    {
   {
    form.csrf_token }}
    {
   {
    form.name.label }} {
   {
    form.name(size=20) }}
    <input type="submit" value="Go">
    </form>
    
    

flask_wtf定义字段

flask_wtf完全使用wtforms组件的字段模型,wtforms对字段的定义在fields模块;又分为core和simple,core模块定义了普通使用的字段,simple在core模块的基础上扩展了一些字段,这些字段会自动进行字段级别的校验。

字段类型


    # core.py
    __all__ = (
      'BooleanField', 'DecimalField', 'DateField', 'DateTimeField', 'FieldList',
      'FloatField', 'FormField', 'IntegerField', 'RadioField', 'SelectField',
      'SelectMultipleField', 'StringField',
    )

常用字段说明:

  • BooleanField:布尔类型,如Flask,True
  • StringField:字符串类型
  • DecimalField:小数点文本字段,如:‘1.23’
  • DateField:日期字段,格式:’%Y-%m-%d’
  • DateTimeField:日期字段,格式:’%Y-%m-%d %H:%M:%S’
  • FieldList:统一字段类型组成列表,如:FieldList(StringField(‘Name’, [validators.required()]))
  • FloatField:浮点数类型
  • IntegerField:整形
  • SelectMultipleField:多选框
  • RadioField:单选框

simple.py

  • TextAreaField:文本域,可接受多行输入
  • PasswordField:密码字段,输入的不会直接在浏览器明文显示
  • FileField:上传文件,但不会处理验证文件,需要手动处理
  • HiddenField:隐藏字段
  • SubmitField:按钮
  • TextField:字符串类型的别名,弃用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值