【Flask之WTForms】 𶟲

原文:
http://blog.gqylpy.com/gqy/345

下载:pip install WTForms

第一步 Flask脚本:

from flask import Flask, request, render_template, views
from wtforms import Form, validators
from wtforms.fields import simple, core

app = Flask(__name__)

# --------------------------------------------------------------------------

class RegForm(Form):
    nickname = simple.StringField(
        label="昵称",
        validators=[
            validators.DataRequired(message="昵称不可为空")
        ],
        render_kw={'class': 'my_username'}  # 自定义扩展属性
    )

    password = simple.PasswordField(
        label="密码",
        validators=[
            validators.DataRequired(message="密码不可为空"),
            # validators.Length(min=3, max=9, message="密码最小3位,最大9位"),
            validators.Length(min=6, max=6, message="密码必须为6位"),
            # 支持正则的匹配:
            validators.Regexp(regex='\d+', message="密码必须为纯数字"),
        ]
    )

    repassword = simple.PasswordField(
        label="校验密码",
        validators=[
            validators.EqualTo(fieldname='password', message="密码不一致")
            # 这里将获取password属性的值,并与本属性的值做比较,如果不一致则阻拦
        ]
    )

    # 邮箱
    email = simple.StringField(
        label="邮箱",
        validators=[
            validators.Email(message="邮箱格式错误"),
        ]
    )

    # 单选纽扣??
    gender = core.RadioField(
        label="性别",
        coerce=int,
        choices=((1, "男"), (2, "女"), (3, "密")),
        default=1,  # 性别默认为男
    )

    # 多选框
    hobby = core.SelectMultipleField(
        label="爱好",
        coerce=int,
        choices=((1, 'Python'), (2, 'Flask'), (3, 'Django'), (4, 'Java')),
        default=(1, 2, 3)  # 默认选中
    )

    # 提交按钮
    submit = simple.SubmitField(
        label="提交"
    )

# --------------------------------------------------------------------------

class Reg(views.MethodView):

    def get(self):
        rf = RegForm()  # ??
        return render_template('reg.html', rf=rf)

    def post(self):
        # 校验数据
        rf = RegForm(request.form)
        # 判断是否校验成功
        if rf.validate():
            # 数据存放在rf.data中
            userinfo = rf.data
            return 'Registered successfully.'
        return render_template('reg.html', rf=rf)

# 注册CBV的路由,一个CBV可以有多条路由
app.add_url_rule('/reg', view_func=Reg.as_view('reg'))

app.run(debug=True)

第二步 模版文件:

<form method="post">
    {% for field in rf %}
        <div>{{ field.label }}{{ field }}{{ field.errors.0 }}</div>
        <hr>
    {% endfor %}
</form>

第四步 浏览器:

原文:
http://blog.gqylpy.com/gqy/345

原文地址:https://www.cnblogs.com/mypath1/p/11404410.html

时间: 2024-10-30 01:59:51

【Flask之WTForms】 𶟲的相关文章

Flask之wtforms源码分析

一.wtforms源码流程 1.实例化流程分析 1 # 源码流程 2 1. 执行type的 __call__ 方法,读取字段到静态字段 cls._unbound_fields 中: meta类读取到cls._wtforms_meta中 3 2. 执行构造方法 4 5 a. 循环cls._unbound_fields中的字段,并执行字段的bind方法,然后将返回值添加到 self._fields[name] 中. 6 即: 7 _fields = { 8 name: wtforms.fields.

85、flask之wtforms

本篇导航: wtforms组件的使用 自定义From组件 一.wtforms组件的使用 1.flask中的wtforms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装: pip3 install wtforms 2.wtforms组件的使用之登录验证 1)图示 2)manage.py from flask import Flask,render_template,request,redirect from wtforms.fields import

Flask之WTForms

WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装: pip3 install wtforms 用户登录注册示例 1. 用户登录 当用户登录时候,需要对用户提交的用户名和密码进行多种格式校验.如: 用户不能为空:用户长度必须大于6: 密码不能为空:密码长度必须大于12:密码必须包含 字母.数字.特殊字符等(自定义正则): #!/usr/bin/env python # -*- coding:utf-8 -*- from flask import Flas

flask flask_session,WTForms

一.Flask_session 本质上,就是是cookie 下的session存储在redis中,方便快速取得session from flask import Flask,session from flask_session import Session from redis import Redis app=Flask(__name__) #这两个是必须填写的,在session源码中, ''' if config['SESSION_TYPE'] == 'redis': session_int

【Flask之WTForms】 -- 2019-08-08 18:01:54

原文: http://106.13.73.98/__/120/ 下载:pip install WTForms 第一步 Flask脚本: from flask import Flask, request, render_template, views from wtforms import Form, validators from wtforms.fields import simple, core app = Flask(__name__) # ------------------------

【Flask之WTForms】 -- 2019-08-08 20:39:48

原文: http://106.13.73.98/__/120/ 下载:pip install WTForms 第一步 Flask脚本: from flask import Flask, request, render_template, views from wtforms import Form, validators from wtforms.fields import simple, core app = Flask(__name__) # ------------------------

Flask

Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器. "微"(micro) 并不表示你需要把整个 Web 应用塞进单

80、Flask用法简析

本篇导航: 基本使用 模板.请求和响应 Session 蓝图 其他 Flask插件 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用

WEB框架之Flask

Django:1个重武器,包含了web开发中常用的功能.组件的框架:(ORM.Session.Form.Admin.分页.中间件.信号.缓存.ContenType....): Tornado:2大特性就是异步非阻塞.原生支持WebSocket协议: Flask:功能和性能虽然不及Django和Tornado,但是Flask的第三方开源组件比丰富:http://flask.pocoo.org/extensions/ Bottle:比较简单: 总结: 都不是我写的!!!不论优劣,不同的工具而已: 小