Django重新整理3

Forms组件

1.在models.py中我们建立一个新的表关系:

class UserInfo(models.Model):

    user=models.CharField(max_length=32)
    pwd=models.CharField(max_length=32)
    email=models.CharField(max_length=32)

2.进行数据的迁移

3.路由和视图函数

4.

from app01.models import UserInfo
def reg(request):
    if request.method == "POST":
    form =  UserForm(request.POST)
#校验数据
        if form.is_valid():
            print(form.cleaned_data)
            UserInfo.objects.create(**form.cleaned_data)
            return HttpResponse("OK")
        else:
            errors=form.errors
            print(form.errors.get('__all__'))
            if form.errors.get("__all__"):
                g_errors = form.errors.get('__all__')[0]
            return render(request,"reg.html",locals())

    else:
        form=UserForm()
        return render(request,"reg.html",locals())



#在views中直接创建UserForm表
from django.forms import widgets

class UserForm(forms.Form):
    msg={"required":"该字段不能为空"}
    user=forms.CharField(min_length=5,
                         label="用户名",
                         error_messages=msg,
                         widget=widgets.TextInput(attrs={"class":"form-control"})
                         )
    pwd=forms.CharField(error_messages=msg,
                           label="密码",
                         min_length=5,
                          widget=widgets.PasswordInput(attrs={"class":"form-control"})
                           )
    r_pwd = forms.CharField(error_messages=msg,
                            min_length=5,
                          label="确认密码",
                          widget=widgets.PasswordInput(attrs={"class": "form-control"})
                          )
    email=forms.EmailField(error_messages={"invalid":"邮箱格式错误"},
                           label="邮箱",
                           widget=widgets.EmailInput(attrs={"class":"form-control"})
                           )

#定义钩子
def clean_user(self): val=self.cleaned_data.get("user") ret=UserInfo.objects.filter(user=val).first() if not ret: return val else: raise ValidationError("用户名已存在!")

def clean_pwd(self): val=self.cleaned_data.get("pwd") if val.isdigit(): raise ValidationError("密码不能是纯数字!") else: return val
def clean(self): pwd=self.cleaned_data.get("pwd") r_pwd=self.cleaned_data.get("r_pwd") if pwd and r_pwd: if pwd==r_pwd: return self.cleaned_data else: raise ValidationError("两次密码不一致!") else: return self.cleaned_data

 

转载于:https://www.cnblogs.com/lzqrkn/p/9984752.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值