国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django實(shí)現(xiàn)表單驗(yàn)證

2020-02-15 22:55:17
字體:
供稿:網(wǎng)友

本文實(shí)例為大家分享了Django實(shí)現(xiàn)表單驗(yàn)證的具體代碼,供大家參考,具體內(nèi)容如下

models.py

class Users(models.Model):  nickname = models.CharField(max_length=16, null=False, blank=False, unique=True)  email = models.EmailField(max_length=32, null=False, blank=False, unique=True)  password = models.CharField(max_length=64, null=False, blank=False)  head = models.ImageField(default="decault.png")  age = models.CharField(max_length=3,blank=True,null=True)  sex = models.CharField(max_length=2, blank=True, null=True)  isactivate = models.BooleanField(default=False)  def save(self):    if not self.password.startswith('pbkdf2_'):      self.password = make_password(self.password)    super().save()

form.py

from django import formsfrom django.core.exceptions import ValidationErrorfrom user.models import Users#定義驗(yàn)證器def nickname_validate(nickname):  u = Users.objects.filter(nickname=nickname)  if len(u):    print(len(u))    raise ValidationError('用戶名已存在')#定義表單class RegisterForm(forms.Form):  nickname = forms.CharField(validators=[nickname_validate],                label='用戶名',                max_length=16,                min_length=4,                required=True,                widget= forms.TextInput(),                )  password = forms.CharField(label='密碼',                max_length=64,                min_length=6,                required=True,                widget=forms.PasswordInput())  email = forms.EmailField(label='郵箱',               max_length=32,               required=True)  age = forms.CharField(label='年齡',             max_length=3,             required=False)  sex = forms.ChoiceField(label='性別',              choices = ((0,'男'),(1,'女'),),              required=False)

view.py

from user.forms import RegisterFormfrom user.models import Usersdef register(request):  if request.method == 'POST':    form = RegisterForm(request.POST)    if form.is_valid():      u = Users()      u.nickname = form.cleaned_data['nickname']      u.email = form.cleaned_data['email']      u.password = form.cleaned_data['password']      u.age = form.cleaned_data['age']      u.sex = form.cleaned_data['sex']      u.save()      return render(request,'user_info.html')    else:      return render(request, 'register.html',context={'form':form,'errors': form.errors})  else:    form = RegisterForm()  return render(request,'register.html',context={'form':form})

register.html

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>注冊(cè)</title></head><body>  <form class="form" action="{% url 'user:register' %}" method="post">    {% csrf_token %}    <table>      {{ form.as_p }}    </table>    <button type="submit" class="btn btn-primary btn-block">注冊(cè)    </button>    <input type="hidden" name="next" value="{{ next }}"/>  </form></body></html>            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 西丰县| 兴海县| 宣威市| 平顶山市| 邓州市| 平度市| 普陀区| 泾源县| 广饶县| 江北区| 滦平县| 石屏县| 五寨县| 福安市| 许昌县| 澄江县| 呈贡县| 三门峡市| 紫金县| 梅州市| 长岛县| 新巴尔虎右旗| 永宁县| 白朗县| 敦化市| 石屏县| 晋中市| 隆德县| 抚顺市| 高密市| 夏邑县| 鄢陵县| 唐河县| 乐安县| 新乡县| 黎川县| 陵水| 荥经县| 清新县| 宣化县| 岚皋县|