小編給大家分享一下django表單驗(yàn)證的使用方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),惠州企業(yè)網(wǎng)站建設(shè),惠州品牌網(wǎng)站建設(shè),網(wǎng)站定制,惠州網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,惠州網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
1, 在視圖views.py中引入forms模塊 from django import forms,特別注意是forms,加s
2, 然后創(chuàng)建一個(gè)類繼承django的Form class biaodan(forms.Form):
3, 編寫自定義的表單驗(yàn)證規(guī)則, forms模塊中提供了許多內(nèi)置的驗(yàn)證字段如, 針對(duì)字符串使用CharFiled,針對(duì)郵箱使用 EmailFiled,針對(duì)url地址使用URlFiled,數(shù)字字段,ip類的字段等等, 每一個(gè)字段內(nèi)我們還可以設(shè)置驗(yàn)證條件,比如,是否要求字段可以為空,添加驗(yàn)證條件required=True,表示不能為空,max_length=5,最大字符數(shù),min_length最小字符數(shù),error_messages={},自定的錯(cuò)誤信息,字典形式,鍵為驗(yàn)證條件的字段,錯(cuò)誤信息自己可以隨便寫,針對(duì)郵箱有一個(gè)錯(cuò)誤信息字段為invalid,用來(lái)專門寫郵箱驗(yàn)證錯(cuò)誤后的提示信息,其實(shí)錯(cuò)誤信息可以自己不編寫,模塊中有默認(rèn)的驗(yàn)證錯(cuò)誤返回信息,不過(guò)是英文的,為了更好的用戶體驗(yàn),建議自己定義
比如我們定義一個(gè)用戶的驗(yàn)證
django框架沒(méi)有手機(jī)號(hào)的驗(yàn)證規(guī)則可以自定義添加
# 編寫自定義驗(yàn)證規(guī)則def mobile_check(value): res = re.match('^1[356789]\d{9}$', value) if not res: # 自定義規(guī)則不拋異常表示通過(guò) raise ValidationError('手機(jī)號(hào)碼格式錯(cuò)誤')class bd(forms.Form): mobile = forms.CharField( required=True, # 使用自定義驗(yàn)證規(guī)則 validators=[mobile_check], error_messages={ 'required': '手機(jī)號(hào)為必填項(xiàng)', }, ) user = forms.CharField( required=True, max_length=4, min_length=2, error_messages={'required': '不能為空', 'max_length': '最長(zhǎng)不能超過(guò)4個(gè)字符', 'min_length': '最小長(zhǎng)度為2' } )
4, 驗(yàn)證類編寫好以后我們就可以,編寫邏輯邏輯處理模塊了
def test(request): if request.method == 'POST': f = bd(request.POST) # 使用bd類驗(yàn)證請(qǐng)求過(guò)來(lái)大的信息 if f.is_valid(): # is_valid()返回驗(yàn)證是否通過(guò)的布爾值 # print(f.cleaned_data) # cleaned_data 返回驗(yàn)證通過(guò)后的所有數(shù)據(jù),字典形式 # 可以執(zhí)行數(shù)據(jù)庫(kù)存儲(chǔ)操作 return JsonResponse(f.cleaned_data) else: return render(request, 'kanyun/test.html', {'info': f.errors}) # errors 獲取驗(yàn)證錯(cuò)誤信息 elif request.method == 'GET': return render(request, 'kanyun/test.html')
通過(guò)驗(yàn)證后的返回的cleaned_data數(shù)據(jù),可以進(jìn)行對(duì)數(shù)據(jù)庫(kù)的存儲(chǔ)操作
如果是登陸則可以查詢數(shù)據(jù)庫(kù)對(duì)比,成功后可以執(zhí)行跳轉(zhuǎn)操作
前端代碼,前端的input的輸入框下要有接收錯(cuò)誤信息的標(biāo)簽?zāi)K用來(lái)接收錯(cuò)誤提示信息
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h2>From模塊驗(yàn)證表單模塊使用方法訪問(wèn)頁(yè)面</h2> <form action="{% url 'kanyun:test' %}" method="post"> {% csrf_token %} <div> 用戶名:<input type="text" name="mobile"/> <span>{{ info.user }}</span> </div> <div> 密碼:<input type="text" name="user"/> <span>{{ info.pwd }}</span> </div> <button type="submit">提交</button> </form> <h2>自動(dòng)創(chuàng)建表單</h2> </body> </html>
看完了這篇文章,相信你對(duì)django表單驗(yàn)證的使用方法有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
分享標(biāo)題:django表單驗(yàn)證的使用方法
鏈接分享:http://www.rwnh.cn/article18/jipjgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、外貿(mào)建站、企業(yè)網(wǎng)站制作、網(wǎng)站改版、網(wǎng)站設(shè)計(jì)、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)