7月2日 Django注册页面的form组件

forms.py里注册页面的form组件

# Create your views here.
class RegForm(forms.Form):
    username = forms.CharField(
        min_length=3,
        label="用户名",
        help_text=‘‘,
        error_messages={
            "required": "不能为空",
            "invalid": "格式错误",
            "min_length": "用户名最短8位"
        }
    )
    password = forms.CharField(
        min_length=3,
        label="密码",

        help_text=‘6~16个字符,区分大小写‘,
        error_messages={
            "required": "不能为空",
            "invalid": "格式错误",
        },
        widget=forms.widgets.PasswordInput
    )

    re_password = forms.CharField(
        min_length=3,
        label="确认密码",

        help_text=‘请再次填写密码‘,
        error_messages={
            "required": "不能为空",
            "invalid": "格式错误",
        },
        widget=forms.widgets.PasswordInput)

    gender = forms.fields.ChoiceField(
        choices=((1, "男"), (2, "女"), (3, "保密")),
        label="性别",
        initial=3,
        widget=forms.widgets.RadioSelect
    )

    phone = forms.fields.CharField(
        label="电话",
        error_messages={
            "required": "不能为空",
        },
    )

    email = forms.fields.CharField(
        label=‘邮箱‘,
        help_text=‘6~18个字符,可使用字母、数字、下划线‘,
        widget=forms.widgets.EmailInput,
        error_messages={
            "required": "不能为空",
            "invalid": "格式错误",
        },
    )

    # 批量给form表单里的字段加样式
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        for field in iter(self.fields):
            field_obj = self.fields[field]
            if not isinstance(field_obj, forms.fields.ChoiceField):
                field_obj.widget.attrs.update({‘class‘: ‘form-control‘})

    # 全局钩子,此处用来判断两次输入的密码
    def clean(self):
        pwd = self.cleaned_data.get(‘pwd‘)
        re_pwd = self.cleaned_data.get(‘re_pwd‘)
        if pwd != re_pwd:
            self.add_error(‘re_pwd‘, ‘两次密码不一致‘)
            raise ValidationError(‘两次密码不一致‘)
        else:
            return self.cleaned_data

    # 局部钩子函数,写给phone的校验函数
    def clean_phone(self):
        phone = self.cleaned_data.get(‘phone‘)
        if not re.findall(‘^1[0-9]{10}$‘, phone):
            raise ValidationError("格式错误!")
        else:
            return phone

关于钩子函数:

源码里的  forms/forms.py

1、

2、

原文地址:https://www.cnblogs.com/95lyj/p/9265912.html

时间: 2024-08-04 01:58:46

7月2日 Django注册页面的form组件的相关文章

将ECSHOP会员注册页面的Email修改成非必填项

将ECSHOP会员注册页面的Email修改成非必填项 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2011-07-29 有人说,在后台的 “会员注册项设置 ”里面不是可以控制是否必填吗??我就碰到好几个人这么说过.其实是他看问题不认真,这里说的是“将会员注册页面的email修改成非必填项”,注意是 email , 那个"会员注册项设置"里是不包括EMAIL的 闲话少叙,下面就来说一下方法,注意此方法是在Ecshop2.7.2版上修改的,针对以前版本的修

将会员注册页面的Email修改成非必填项(ecshop2.7.2版)

"将ECSHOP会员注册页面的email修改成非必填项",注意是 email , 那个"会员注册项设置"里是不包括EMAIL的 闲话少叙,下面就来说一下方法, 注意此方法是在官方默认模板上修改的 1). 首先来修改模板文件, 这里以官方默认模板为例 打开 /themes/default/user_passport.dwt 文件 找到 onblur="checkEmail(this.value);" 将其删除,继续向下找到 <span id=

6月28日 Django form表单

Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确.如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.. Django form组件就实现了上面所述的功能. 总结一下,其实form组件的主要功能如下: 生成页面可用的HTML标签 对用户提交的数据进行校验 保留上次输入内容 普通的登录 views.p

Django【十三】form组件。

一.form组件 form组件的功能: 检验功能 前端生成HTML页面 还能保留输入的内容 form组件的用法: from django import forms # Create your views here. # 定义一个类 class Myform(forms.Form): title = forms.CharField( # 通过from表单进行验证的时候,验证输入title字段的数据,参数用于验证 max_length=20, min_length=2, ) # CharField/

Django web开发之Form组件

Form组件使用 参照文档 https://docs.djangoproject.com/zh-hans/2.2/topics/forms/ 生成HTML标签 创建一个form类 from django import forms class RegForm(forms.Form): name = forms.CharField(max_length=6, label='用户名') pwd = forms.CharField(label='密码', min_length=8, widget=for

Django框架基础之Form组件

服务端假设所有用户提交的数据都是不可信任的,所以Django框架内置了form组件来验证用户提交的信息 form组件的2大功能:       1 验证(显示错误信息)       2 保留用户上次输入的信息                  -- 可以生成html标签应用: class A_Form(Form): 字段=fields.字段类型(默认参数: required=True, widget=widgets.插件(attrs={})) 常用字段:Charfield,RegexField,I

6月26日 Django 中间件

 前戏 我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面.我们通过给几个特定视图函数加装饰器实现了这个需求.但是以后添加的视图函数可能也需要加上装饰器,这样是不是稍微有点繁琐. 学完今天的内容之后呢,我们就可以用更适宜的方式来实现类似给所有请求都做相同操作的功能了 中间件 中间件介绍 什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于在全局范围内改变Django的输入

注册页面的JSON响应方式详细分析(与前端页面交互方式之一)

控制器层 需求分析: 访问路径:`/user/reg.do` //自己根据功能需求设定的请求参数:`username=xx&password=xx&&phone=xx&email=xx` //根据注册页面的输入框设定 请求类型:`POST`响应内容:`JSON` //响应的json字符串 八月27日,15:00 在`pom.xml`中添加对`Jackson`的依赖: <!-- jackson --> <dependency> <groupId&

7月2日 Django 生成验证码、

html页面里 {# 验证码 #} <div class="form-group " id="v-code-wrapper"> <label for="v_code_input">验证码</label> <input type="text" class="form-control" id="v_code_input" name="v_c