flask_wtf表单验证示例源码

flask_wtf表单验证示例源码

python实例qingyu2022-11-27 8:11:56105A+A-
from flask_wtf import FlaskForm
from wtforms import PasswordField, StringField
from wtforms.validators import Email, Length, EqualTo, DataRequired, ValidationError
from conn import conn

class RegisterForm(FlaskForm):
    """注册表单验证"""
    #password confirm_pwd username 和  html模板中<input name属性值一致。
    password = PasswordField(label='密码',
                             validators=[Length(3, 18, message='密码格式错误'),
                                         DataRequired('密码不能为空')])
    confirm_pwd = PasswordField('确认密码', validators=[EqualTo("password", message='两次密码不一致')])

    username = StringField(label='邮箱账号', validators=[Email(message='邮箱格式错误!')])

    #自定义验证器
    def validate_username(self, field):
        """邮箱是否已被注册过"""
        username = field.data
        sql = f"select * From user where username='{username}'"
        data = conn.data_is_in(sql)
        if data:
            raise ValidationError(message='该邮箱已经被注册!')
<form name="f1" action="{{url_for('user.register')}}" method="post" >
    <input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
<div class="card-body" style="line-height:30px;">
    <div class="mb-3">
        <label for="">邮箱账号</label>
        <input type="text" name="username" class="form-control"/>
    </div>
    <div class="mb-3">
        <label for="">密码</label>
        <input type="password" name="password" class="form-control"/>
    </div>
    <div class="mb-3">
        <label for="">确认密码</label>
        <input type="password" name="confirm_pwd" class="form-control"/>
    </div>
    <div class="mb-3">
        <button type="submit" name="register_btn" class="btn btn-primary">注册</button>
    </div>
</div>
</form>

flask_wtf表单验证示例源码

  关于表单验证带来的问题

  The CSRF token is missing

  解决方案如下:

  https://moban.shenhuangji.com/wenzhang/509.html

点击这里复制本文地址 欢迎来到大黄鸡源码分享网
qrcode

大黄鸡源码编程网 © All Rights Reserved.  
网站备案号:闽ICP备18012015号-4
Powered by Z-BlogPHP
联系我们| 关于我们| 广告联系| 网站管理