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

首頁(yè) > 編程 > Python > 正文

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

2020-01-04 14:34:02
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(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>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到python教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 汉源县| 宣武区| 长岛县| 开封县| 蒙阴县| 乌鲁木齐市| 东兰县| 札达县| 武功县| 桂阳县| 山东| 浦北县| 顺义区| 隆回县| 玉溪市| 皋兰县| 武强县| 曲麻莱县| 灵寿县| 四平市| 黎平县| 南召县| 永定县| 沙雅县| 奉新县| 繁昌县| 保靖县| 洛阳市| 蚌埠市| 大渡口区| 来安县| 巴南区| 大渡口区| 玛沁县| 红安县| 新泰市| 高碑店市| 方正县| 红安县| 安化县| 肃宁县|