欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2018年09月08日 09:21:39   作者:不凡De老五  
這篇文章主要為大家詳細介紹了Django實現(xiàn)表單驗證的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

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 forms
from django.core.exceptions import ValidationError

from user.models import Users

#定義驗證器
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 RegisterForm
from user.models import Users

def 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>注冊</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">注冊
    </button>
    <input type="hidden" name="next" value="{{ next }}"/>
  </form>
</body>
</html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python 獲取鍵盤輸入,同時有超時的功能示例

    python 獲取鍵盤輸入,同時有超時的功能示例

    今天小編就為大家分享一篇python 獲取鍵盤輸入,同時有超時的功能示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 解決Python獲取字典dict中不存在的值時出錯問題

    解決Python獲取字典dict中不存在的值時出錯問題

    今天小編就為大家分享一篇解決Python獲取字典dict中不存在的值時出錯問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python 命令行非阻塞輸入的小例子

    Python 命令行非阻塞輸入的小例子

    很久很久以前,系windows平臺下,用C語言寫過一款貪食蛇游戲,cmd界面,用kbhit()函數(shù)實現(xiàn)非阻塞輸入。系windows平臺下用python依然可以調用msvcrt.khbit實現(xiàn)非阻塞監(jiān)聽。但系喺linux下面就冇呢支歌仔唱
    2013-09-09
  • 在Ubuntu 20.04中安裝Pycharm 2020.1的圖文教程

    在Ubuntu 20.04中安裝Pycharm 2020.1的圖文教程

    這篇文章主要介紹了在Ubuntu 20.04中安裝Pycharm 2020.1的圖文教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • pycharm下載依賴一直失敗的問題踩坑指南

    pycharm下載依賴一直失敗的問題踩坑指南

    在使用pycharm學習python的時候,經常需要第三方庫,沒有第三方庫程序就會報錯,下面這篇文章主要給大家介紹了關于pycharm下載依賴一直失敗的問題踩坑指南,需要的朋友可以參考下
    2023-06-06
  • Python提取PDF中的圖片的實現(xiàn)示例

    Python提取PDF中的圖片的實現(xiàn)示例

    本文主要介紹了Python提取PDF中的圖片的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • python實現(xiàn)簡易連點器

    python實現(xiàn)簡易連點器

    本文主要介紹了python實現(xiàn)簡易連點器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • python實現(xiàn)拓撲排序的基本教程

    python實現(xiàn)拓撲排序的基本教程

    拓撲排序是對有向無環(huán)圖的一種排序,發(fā)現(xiàn)自己并沒有真的理解拓撲排序,再次學習了下,所以下面這篇文章主要給大家介紹了關于python實現(xiàn)拓撲排序的基本教程,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下,
    2018-03-03
  • Python?pyecharts案例超市4年數(shù)據(jù)可視化分析

    Python?pyecharts案例超市4年數(shù)據(jù)可視化分析

    這篇文章主要介紹了Python?pyecharts案例超市4年數(shù)據(jù)可視化分析,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • 使用Python向C語言的鏈接庫傳遞數(shù)組、結構體、指針類型的數(shù)據(jù)

    使用Python向C語言的鏈接庫傳遞數(shù)組、結構體、指針類型的數(shù)據(jù)

    今天小編就為大家分享一篇關于使用Python向C語言的鏈接庫傳遞數(shù)組、結構體、指針類型的數(shù)據(jù),小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評論