• Flask从入门到精通之Flask表单


      Flask请求对象包含客户端发出的所有请求信息。其中,request.form 能获取POST 请求中提交的表单数据。尽管Flask 的请求对象提供的信息足够用于处理Web 表单,但有些任务很单调,而且要重复操作。比如,生成表单的HTML 代码和验证提交的表单数据。Flask-WTF(http://pythonhosted.org/Flask-WTF/)扩展可以把处理Web 表单的过程变成一种愉悦的体验。这个扩展对独立的WTForms(http://wtforms.simplecodes.com)包进行了包装,方便集成到Flask 程序中。Flask-WTF 及其依赖可使用pip 安装:

     pip install flask-wtf

      使用Flask-WTF 时,每个Web 表单都由一个继承自Form 的类表示。这个类定义表单中的一组字段,每个字段都用对象表示。字段对象可附属一个或多个验证函数。验证函数用来验证用户提交的输入值是否符合要求。

      是一个简单的Web 表单,包含一个文本字段和一个提交按钮。

    from flask.ext.wtf import Form
    from wtforms import StringField,SubmitField
    from wtforms.validators import Required
    
    class NameForm(Form):
            name = StringField('what is your name?',validators=[Required()])
            submit = SUbmitField('submit')

      Form 基类由Flask-WTF 扩展定义,所以从flask.ext.wtf 中导入。字段和验证函数却可以直接从WTForms 包中导入。  

      这个表单中的字段都定义为类变量,类变量的值是相应字段类型的对象。在这个示例中,NameForm 表单中有一个名为name 的文本字段和一个名为submit 的提交按钮。StringField类表示属性为type="text" 的<input> 元素。SubmitField 类表示属性为type="submit" 的
    <input> 元素。字段构造函数的第一个参数是把表单渲染成HTML 时使用的标号。StringField 构造函数中的可选参数validators 指定一个由验证函数组成的列表,在接受用户提交的数据之前验证数据。验证函数Required() 确保提交的字段不为空。

      WTForms 支持的HTML 标准字段如下表

    字段类型 说明
    StringField 文本字段
    TextAreaField 多行文本字段
    PasswordField 密码文本字段
    HiddenField 隐藏文本字段
    DateField 文本字段,值为datetime.date 格式
    DateTimeField 文本字段,值为datetime.datetime 格式
    IntegerField 文本字段,值为整数
    DecimalField 文本字段,值为decimal.Decimal
    FloatField 文本字段,值为浮点数
    BooleanField 复选框,值为True 和False
    RadioField 一组单选框
    SelectField 下拉列表
    SelectMultipleField 下拉列表,可选择多个值
    FileField 文件上传字段
    SubmitField 表单提交按钮
    FormField 把表单作为字段嵌入另一个表单
    FieldList 一组指定类型的字段

      WTForms验证函数如下表:

    Email 验证电子邮件地址
    EqualTo 比较两个字段的值;常用于要求输入两次密码进行确认的情况
    IPAddress 验证IPv4 网络地址
    Length 验证输入字符串的长度
    NumberRange 验证输入的值在数字范围内
    Optional 无输入值时跳过其他验证函数
    Required 确保字段中有数据
    Regexp 使用正则表达式验证输入值
    URL 验证URL
    AnyOf 确保输入值在可选值列表中
    NoneOf 确保输入值不在可选值列表中
  • 相关阅读:
    安装 SciPy 和 scikit-learn 升级pip 及pip基本命令表
    js修改:before、:after的内容
    初试Celery
    python中的@
    python去除空格和换行符的方法
    Beautiful 疑问小记
    http://www.oreilly.com/catalog/errataunconfirmed.csp?isbn=9780596529321
    浏览器提示框事件
    从欧几里得距离、向量、皮尔逊系数到http://guessthecorrelation.com/
    win安装NLTK出现的问题
  • 原文地址:https://www.cnblogs.com/senlinyang/p/8376452.html
Copyright © 2020-2023  润新知