《艾爾登法環》刷失鄉騎士套地點分享 在哪可以刷失鄉騎士套

forms元件之校驗欄位

# 第一步:定義一個類,繼承forms.Form
# 第二步:在類中寫欄位,要校驗的欄位,欄位屬性就是校驗規則
# 第三步:例項化得到一個Form物件,把要校驗的資料傳入
# 第四步:呼叫register_form.is_valid()校驗,校驗通過就是True
# 第五步:校驗通過有register_form.cleaned_data
# 第六步:校驗不通過register_f

forms元件之渲染標籤

# 渲染方式一
<h2>通過form自動渲染一</h2>
<form action="" method="post">
   <p>使用者名稱 {{ form.name }}</p>
   <p>密碼 {{ form.password }}</p>
   <p>確認密碼 {{ form.re_password }}</p>
   <p>郵箱 {{ form.email }}</p>
   <input type="submit" value="提交">
</form>
# 渲染方式二
<h2>通過form自動渲染二(基本用這種)</h2>
<div class="container-fluid">
   <div class="row">
       <div class="col-md-6 col-md-offset-3">
           <form action="" method="post" novalidate>
              {% for item in form %}
                   <div class="form-group">
                       <p>{{ item.label }}{{ item }} <span style="color: red">{{ item.errors.0 }}</span></p>
                   </div>

              {% endfor %}
               <input type="submit" value="提交"><span style="color: red">{{ error }}</span>

           </form>
       </div>
   </div>
</div>
# 渲染方式三
<h2>通過form自動渲染三</h2>
<form action="" method="post">
  {{ form.as_p }}
  {#   {{ form.as_table }}#}
  {#   {{ form.as_ul }}#}

</form>

forms元件全域性鉤子,區域性鉤子(註冊驗證)

# 後端
from django import forms
from django.forms import widgets
from django.core.exceptions import ValidationError

class RegisterForm(forms.Form):
   name = forms.CharField(max_length=8, min_length=3, label='使用者名稱',
                          error_messages={'max_length': '最長為8', 'min_length': '最短為3'},
                          widget=widgets.TextInput(attrs={'class':'form-control'}))
   password = forms.CharField(max_length=8, min_length=3, label='密碼',
                              error_messages={'required': '該欄位必填'},
                              widget=widgets.PasswordInput(attrs={'class':'form-control'}))
   re_password = forms.CharField(max_length=8, min_length=3, label='確認密碼',
                                 widget=widgets.PasswordInput(attrs={'class':'form-control'}))
   email = forms.EmailField(label='郵箱',
                            error_messages={'required': '必填', 'invalid': '必須是郵箱格式'},
                            widget=widgets.TextInput(attrs={'class':'form-control'}))
   def clean_name(self):#name欄位的區域性鉤子
       # 校驗名字不能以sb開頭
       name=self.cleaned_data.get('name')
       if name.startswith('sb'):
           # 校驗不通過,必須拋異常,
           raise ValidationError('不能以sb開頭')
       else:#校驗通過,返回name對應的值

           return name

   def clean(self): # 全域性鉤子
       password=self.cleaned_data.get('password')
       re_password=self.cleaned_data.get('re_password')
       if re_password==password:
           #校驗通過
           return self.cleaned_data
       else:
           raise ValidationError('兩次密碼不一致')
   
from app01 import models
def register(request):
   if request.method == 'GET':
       # 生成一個空form物件
       register_form = RegisterForm()
       return render(request, 'register.html', {'form': register_form})

   else:
       # 例項化得到物件,傳入要校驗的資料
       # register_form=RegisterForm(data=request.POST)
       register_form = RegisterForm(request.POST)
       if register_form.is_valid():
           # 校驗通過,存
           # 取出校驗通過的資料
           print('校驗通過')
           print(register_form.cleaned_data)
           register_form.cleaned_data.pop('re_password')
           models.User.objects.create(**register_form.cleaned_data)
           return HttpResponse('ok')

以上是 《艾爾登法環》刷失鄉騎士套地點分享 在哪可以刷失鄉騎士套 的全部内容, 来源链接: utcz.com/yxgl/577265.html

回到顶部