python测试开发django-104.form表单正则校验(RegexValidator)

前言

校验用户名只能有字母数字下划线组成

正则校验(RegexValidator)

导入 RegexValidator模块

from django.core.exceptions import ValidationError
from django.core.validators import RegexValidator
# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/

class LoginForm(forms.Form):
    """登录Form表单"""
    username = forms.CharField(max_length=20,
                               min_length=3,
                               required=True,
                               label="用户名",
                               initial='yo_1',  # 默认值
                               help_text='长度为3到20个字符!',  # 帮助信息(在标签旁边显示)
                               validators=[RegexValidator(r'^(\w)+$', '用户名只能有字母数字下划线组成!')],
                               error_messages={
                                   'required': '用户名不能为空',
                                   'min_length': '用户名不能少于3位字符',
                                   'max_length': '用户名不能大于20位字符',
                                   'invalid': '参数不合法'
                               })
    password = forms.CharField(max_length=16,
                               min_length=6,
                               required=True,
                               label="密码",
                               widget=forms.PasswordInput,
                               error_messages={
                                   'required': '密码不能为空',
                                   'min_length': '密码不能少于6位字符',
                                   'max_length': '密码不能大于16位字符',
                               })

initial 默认值

initial 设置输入框默认值,相当于input标签value属性

help_text

显示输入框帮助信息,在标签右侧显示,模板中引用{{ field.help_text }}

<form action="" method="POST" id="login-form">
    {% csrf_token %}
    {% for field in form_obj %}
        <p>
            {{ field.label_tag }}
            {{ field }} {{ field.help_text }}
            {{ field.errors }}
        </p>
    {% endfor %}
    <p>
        {{ error_msg }}
    </p>
    <p>
        <input type="submit" value="登录" >
    </p>
</form>

在html显示效果

正则校验

校验用户名只能有字母数字下划线组成,当输入其它字符的时候,提示:参数不合法


error_messages中有'invalid',会优先显示这里的提示

validators=[RegexValidator(r'^(\w)+$', '用户名只能有字母数字下划线组成!')],
                               error_messages={
                                   'required': '用户名不能为空',
                                   'min_length': '用户名不能少于3位字符',
                                   'max_length': '用户名不能大于20位字符'
                               }

去掉'invalid'后,显示validators里面的提示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值