zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    课堂讨论电子版
    项目目标文档
    系统利益相关者
    实训八(游戏背景)
    实训七(项目准备与创建)
    实训六(Cocos2dx游戏分享到微信朋友圈----AppID的获取)
    实训五(Cocos2dx-3.x 打包apk再理解)
    实训四(cocos2dx sharesdk集成-1)
    实训三(cocos2dx 3.x 打包apk)
    实训二(cocos2dx 2.x 打包apk)
  • 原文地址:https://www.cnblogs.com/lzqrkn/p/9984752.html
Copyright © 2011-2022 走看看