zoukankan      html  css  js  c++  java
  • 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里面的提示

  • 相关阅读:
    zabbix添加Tomcat监控
    Jenkins发布
    Linux : 从私钥中提取公钥
    记一次拆机除尘换硅脂的经历,第一次拆机幸好没拆坏,心真大-_-!
    超简单让ubuntu开启wifi热点(亲测16.04与14.04可用)
    一起动手打造个人娱乐级linux
    python数据结构之链表(一)
    华为OJ机试题目:两个大整数相乘(纯C语言实现两个大整数相乘,两种方法实现大数相乘)
    C语言学习笔记---好用的函数memcpy与memset
    个人关于python装饰器的白痴理解
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/14976303.html
Copyright © 2011-2022 走看看