真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

django中怎么使用form表單實現(xiàn)數(shù)據(jù)驗證-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關(guān)django中怎么使用form表單實現(xiàn)數(shù)據(jù)驗證,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

成都網(wǎng)絡(luò)公司-成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站十余年經(jīng)驗成就非凡,專業(yè)從事成都做網(wǎng)站、成都網(wǎng)站制作,成都網(wǎng)頁設(shè)計,成都網(wǎng)頁制作,軟文發(fā)稿,廣告投放等。十余年來已成功提供全面的成都網(wǎng)站建設(shè)方案,打造行業(yè)特色的成都網(wǎng)站建設(shè)案例,建站熱線:18980820575,我們期待您的來電!

1、先導(dǎo)入forms模塊

from django import forms

2、創(chuàng)建模板的類

# 1、創(chuàng)建模板
class loginform(forms.Form):
  # 2、模板中的元素
  name = forms.CharField(min_length=6,error_messages={"requird":"用戶名不能為空","min_length":"最小長度為6"})
  # requird這個是錯誤碼
 
  email = forms.EmailField()

這里這個error_messages寫出錯的信息,每個不同的錯誤碼對應(yīng)不同的報錯信息

3、在視圖函數(shù)中使用這個類

def login(request):
  if request.method.lower() == "post":
    # 3、創(chuàng)建一個模板的對象,然后把數(shù)據(jù)傳遞個這個對象
    obj = loginform(request.POST)
 
    # 4、啟動校驗
 
    status= obj.is_valid()
    print(status)
 
    # 5、正確的信息
    success_dict = obj.clean()
    print(success_dict)
 
    # 6、錯誤的信息
    failed_dict = obj.errors.as_json()
    print(failed_dict)
    return redirect("/app1/login")
  else:
    return render(request,"login.html")

這里就會校驗前臺發(fā)來的數(shù)據(jù)中,k為name和email的值的合法性

因為是form表單,所以提交后頁面會刷新,上次輸入的數(shù)據(jù)就沒有了,我們可以通過下面的方式實現(xiàn)保留上次輸入的值

前端代碼




  
  Title


  

form提交測試

       

{#      #} {#      這段html要django幫我們生成#}         {{ xx.name }}       {{ xx.error.name.0 }}     

    

{#      #}       {#      這段html要django幫我們生成#}             {{ xx.email }}       {{ xx.error.email.0 }}     

    

           

                  

后端代碼

from django.shortcuts import render
from django.shortcuts import HttpResponse
from django.shortcuts import redirect
# Create your views here.
 
 
 
from django import forms
 
"""
def login(request):
  if request.method.lower() == "post":
    print(request.POST.get("name"))
    return redirect("/app1/login")
  else:
    return render(request,"login.html")
    # return redirect("/app1/login")
  # return HttpResponse("hahh")
"""
 
 
 
# 1、創(chuàng)建模板
class loginform(forms.Form):
  # 2、模板中的元素
  name = forms.CharField(min_length=6,error_messages={"required":"用戶名不能為空","min_length":"最小長度為6666666666"})
  # requird這個是錯誤碼
 
  email = forms.EmailField(error_messages={"required":"郵箱不能為空","invalid":"郵箱格式錯誤"})
 
def login(request):
  if request.method.lower() == "post":
    # 3、創(chuàng)建一個模板的對象,然后把數(shù)據(jù)傳遞個這個對象
    obj = loginform(request.POST)
 
    # 4、啟動校驗
 
    status= obj.is_valid()
    print(status)
 
    # 5、正確的信息
    success_dict = obj.clean()
    print("正確的信息----------->",success_dict)
 
    # 6_1、錯誤的信息1
    # failed_dict = obj.errors.as_json()
 
    # 6_2、錯誤的信息1
    failed_dict = obj.errors
 
    if not obj.is_valid():
      # print(failed_dict["name"])
      # print(failed_dict["name"][0])
      print("錯誤的信息----------->",failed_dict)
      print("名稱的錯誤信息-------->",failed_dict["name"][0])
      print("郵箱的錯誤信息-------->", failed_dict["email"][0])
    return render(request, "login.html", {'xx': obj})
    # return redirect("/app1/login")
  else:
    obj = loginform()
    # return render(request,"login.html")
    # return redirect("/app1/login")
    return render(request,"login.html",{"xx":obj})
  # return HttpResponse("hahh")

主要是要看這里

django中怎么使用form表單實現(xiàn)數(shù)據(jù)驗證

django中怎么使用form表單實現(xiàn)數(shù)據(jù)驗證

#Auther Bob
#--*--conding:utf-8 --*--
 
from django import forms
from django.forms import widgets
 
class DeatilForm(forms.Form):
  # pwd = forms.CharField(widget=widgets.PasswordInput())
  # user = forms.CharField(widget=widgets.TextInput())
  pwd = forms.CharField(widget=widgets.PasswordInput(attrs={"class":"c1","placeholder":"密碼"}))
  user = forms.CharField(widget=widgets.TextInput(attrs={"class":"c2","placeholder":"用戶名"}))
 
  age = forms.IntegerField()
  # 這里的效果是輸入框只能輸入數(shù)字,其他的都無法輸入
 
  choice1 = forms.ChoiceField(choices=[(1,"內(nèi)蒙古"),(2,"廣東"),(3,"黑龍江")])
 
  choice2 = forms.CharField(
    widget=widgets.Select(choices=[(1,"內(nèi)蒙古"),(2,"廣東"),(3,"黑龍江")])
  )
  choice3 = forms.IntegerField(
    widget=widgets.Select(choices=[(1,"內(nèi)蒙古"),(2,"廣東"),(3,"黑龍江")])
  )
  choice4 = forms.IntegerField(
    widget=widgets.RadioSelect(choices=[(1,"內(nèi)蒙古"),(2,"廣東"),(3,"黑龍江")])
  )
 
# 進行一下字段學(xué)習(xí)
class FiledForm(forms.Form):
  arg1 = forms.CharField(
 
    # 這個屬性是charfiled特有的
    # max_length=233,大的字符長度
    # min_length=234,最小的字符長度
 
 
 
    # 下面這些屬性是filed都有的,下面參數(shù)都可以用下面的參數(shù)
 
    # required=True 是否必填
    # label=None 就是顯示一個字符串,在前臺渲染的時候用obj.arg1.label就會顯示label的值,只是一個錦上添花的作用
    # initial=None 這里就是一個默認(rèn)值,也就是初始值
    # help_text=''這里就是一個幫助信息
 
    # error_messages=None 出錯的時候顯示的信息
 
    # show_hidden_initial=False 是否生成帶有默認(rèn)值的一個隱藏的標(biāo)簽,可以用來判斷現(xiàn)在的輸入值和默認(rèn)值是否相同
 
    # validators=() 自定義一個正則表達式
 
    # localize=False 是否支持本地化,暫時不需要掌握
 
    # disabled=False 標(biāo)簽是否能否能編輯
 
    # label_suffix=None 默認(rèn)這個值就是冒號,也就是前面label的值和input框之間的冒號,如果設(shè)置了這個值,就會替代lable和input框中之間的冒號
 
    # error_messages=None
    # error_messages={"required":"不能為空","invalid":"格式錯誤",}
 
  )
  arg2 = forms.IntegerField(
    # max_value=23, 大值
    # min_value=21. 最小值
  )
 
  arg3 = forms.FloatField(
 
  )
 
  arg4 = forms.DateField(
    # 頁面必須要滿足這個格式,格式是:2015-09-03
  )
 
  arg5 = forms.TimeField(
    # 頁面必須要滿足這個格式,格式是:11:34
  )
 
  arg6 = forms.DateTimeField(
    # 頁面必須要滿足這個格式,格式是:2015-09-03 11:34
  )
 
  arg7 = forms.EmailField(
 
  )
 
  arg8 = forms.PasswordInput(
 
  )
 
  arg9 = forms.RegexField(
    # 通過正則表達式自定義字段
  )
 
  arg10 = forms.FileField(
 
  )
 
  arg11 = forms.ImageField(
 
  )
 
  # 單選框
  arg12 = forms.ChoiceField(
    initial=2,
    choices=((1,"內(nèi)蒙古"),(2,"黑龍江"),(3,"廣東"))
  )
 
  # 多選框
  arg13 = forms.MultipleChoiceField(
    initial=[1,2],
    choices=((1,"內(nèi)蒙古"),(2,"黑龍江"),(3,"廣東"))
  )
 
  arg14 = forms.FilePathField(
    # recursive=False 是否遞歸顯示,是否顯示文件下的文件
 
 
    # 指定一個路徑,會把這個路徑下所有的文件和路徑用select框顯示出來
  )
 
  arg15 = forms.GenericIPAddressField(
    # 解析ip地址
  )
  arg16 = forms.SlugField(
    # 只允許輸入,字母數(shù)字和下劃線減號
  )
 
  arg17 = forms.UUIDField(
    # 只支持uuid格式的輸入
  )
  # 這里的arg*就是k值
  f8 = fields.ChoiceField(
    choices=[(1, "上海3"), (2, "北京3"), (3, "深圳3")],
    initial=3,
    required=True,
    label="城市",
    label_suffix="------>"
  )
 
  f9 = fields.TypedChoiceField(
    choices=[(1, "上海4"), (2, "北京4"), (3, "深圳4")],
    initial=3,
    required=True,
    coerce=lambda x:int(x)
  )
 
  f10 = fields.MultipleChoiceField(
    choices=[(1, "上海5"), (2, "北京5"), (3, "深圳5")],
    initial=[1,3,]
  )
 
  f11 = fields.TypedMultipleChoiceField(
    choices=[(1, "上海5"), (2, "北京5"), (3, "深圳5")],
    initial=[1, 3, ],
    coerce=lambda x:int(x),
  )
 
  f12 = fields.FilePathField(path="app1",allow_folders=True,recursive=False,allow_files=)
 
# recursive:遞歸顯示,true不顯示,false顯示
# allow_folders:是否顯示文件夾
# allow_files:是否顯示文件
 
  f13 = fields.GenericIPAddressField(
    protocol="both"
  )
 
  f13 = fields.SlugField()
  # 只允許數(shù)字,字母,下劃線,減號

widget可以指定插件的類型

django中怎么使用form表單實現(xiàn)數(shù)據(jù)驗證

關(guān)于django中怎么使用form表單實現(xiàn)數(shù)據(jù)驗證就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)頁題目:django中怎么使用form表單實現(xiàn)數(shù)據(jù)驗證-創(chuàng)新互聯(lián)
本文URL:http://weahome.cn/article/idipo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部