《艾爾登法環》刷失鄉騎士套地點分享 在哪可以刷失鄉騎士套
# 第一步:定義一個類,繼承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