亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Django form表單與請(qǐng)求的生命周期步驟詳解

瀏覽:110日期:2024-09-29 14:56:40

Django中請(qǐng)求的生命周期

HTTP請(qǐng)求及服務(wù)端響應(yīng)中傳輸?shù)乃袛?shù)據(jù)都是字符串

步驟

用戶(hù)在瀏覽器中輸入url時(shí),瀏覽器會(huì)生成請(qǐng)求頭和請(qǐng)求體發(fā)給服務(wù)器 url經(jīng)過(guò)wsgi和中間件,到達(dá)路由映射表,在路由中一條一條進(jìn)行匹配 視圖函數(shù)根據(jù)客戶(hù)端的請(qǐng)求查詢(xún)響應(yīng)的數(shù)據(jù),返回給 DjangoDjango把客戶(hù)端想要的數(shù)據(jù)做為一個(gè)字符串返回給客戶(hù)端 客戶(hù)端瀏覽器接收到返回的數(shù)據(jù),經(jīng)過(guò)渲染后顯示給用戶(hù)

FBV

一個(gè)url對(duì)應(yīng)一個(gè)視圖函數(shù)

在url匹配成功之后,會(huì)直接執(zhí)行對(duì)應(yīng)的視圖函數(shù)。

CBV

一個(gè)url對(duì)應(yīng)一個(gè)類(lèi)

url匹配成功找到視圖函數(shù)中對(duì)應(yīng)的類(lèi),然后這個(gè)類(lèi)回到請(qǐng)求頭中找到對(duì)應(yīng)的Request.Method如果客戶(hù)端以post的方式提交請(qǐng)求,就執(zhí)行類(lèi)中的post方法如果客戶(hù)端以get的方式提交請(qǐng)求,就執(zhí)行類(lèi)中的get方法

步驟:

服務(wù)端發(fā)送包含url和method的請(qǐng)求,這兩個(gè)信息都是字符串類(lèi)型 服務(wù)端通過(guò)路由映射表匹配成功后會(huì)自動(dòng)去找dispatch方法 Django會(huì)通過(guò)dispatch反射的方式找到類(lèi)中對(duì)應(yīng)的方法并執(zhí)行 勒種的方法執(zhí)行完畢后,會(huì)把客戶(hù)端想要的數(shù)據(jù)返回給dispatch方法 dispatch方法把數(shù)據(jù)返回給客戶(hù)端

form表單

定義:

Django的表單系統(tǒng)中,所有的表單都繼承自django.forms.Form類(lèi)

Django的表單系統(tǒng)

form_obj.as_p #在html網(wǎng)頁(yè)渲染所有的字段label#為一個(gè)標(biāo)簽添加id號(hào)form_obj.字段 #渲染指定的字段min_length#綁定字段的最短長(zhǎng)度max_length#綁定字段的最長(zhǎng)長(zhǎng)度is_valid()#驗(yàn)證用戶(hù)輸入的信息是否有效,返回一個(gè)布爾值cleaned_data() #清洗數(shù)據(jù)error_massage() #定義錯(cuò)誤的返回信息#文件上傳:request.POST.get('file')#獲取上傳的文件的文件名request.FILES#獲取上傳文件的對(duì)象結(jié)果是一個(gè)字段file_obj.name#獲取上傳文件在內(nèi)存中的名字#上傳文件時(shí)要使用分片傳輸?shù)姆绞?上傳enctype='multipart/form-data'#form表單的屬性里添加#接收if request.method=='POST': file_obj = request.FILES.get('up_file') fl = open(file_obj.name,’vb’) for i in file_obj.chunks(): fl.write(i) fl.close()

#可以在class Meta中設(shè)定的功能model = model.UserInfo#顯示對(duì)于Model的字典,這里顯示用戶(hù)信息表fields = '__all__'#顯示數(shù)據(jù)表中所有的字段fields = ['username','age']#顯示數(shù)據(jù)表的某些指定的字段exclude = ['email']#不顯示數(shù)據(jù)表的某些字段#自定義頁(yè)面的標(biāo)簽labels = {'username':'用戶(hù)名','age':'年齡','email':'郵箱'}#自定義在標(biāo)簽后面顯示的提示幫助信息help_texts = {'username':'請(qǐng)輸入正確的用戶(hù)名','email':'請(qǐng)輸入正確的郵箱'}#自定義錯(cuò)誤信息,用戶(hù)輸入錯(cuò)誤時(shí)提示error_messages = {'username':{'required':'用戶(hù)名不能為空'},'email':{'invalid':'郵箱不能為空'}}#自定義標(biāo)簽的類(lèi)型,在這里把email這個(gè)輸入框的類(lèi)型更改為email類(lèi)型from django import fields as field_widgetfield_classes = {}'email':field_widget.EmailField}#自定義插件(attrs為插件的屬性)from django.forms import widgets as formwidgetwidgets = {'username':formwidget.Textarea(attrs={'class':'c1'})}

總結(jié)

到此這篇關(guān)于Django-form表單與請(qǐng)求的生命周期的文章就介紹到這了,更多相關(guān)Django-form表單與請(qǐng)求的生命周期內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 国产精品综合一区二区 | 伊人22222| 欧美精品国产日韩综合在线 | 国产理论| 一级毛片a女人刺激视频免费 | 亚洲国产精品一区二区第四页 | 国产三级精品三级在线观看 | 国产视频日韩 | 亚洲伦理一区二区 | 久久精品免费观看视频 | 黄色欧美一级片 | 久久婷婷激情综合色综合也去 | 真人肉体一级毛片 | 青青伊人影院 | 亚洲成人一区二区 | 欧美日本亚洲国产一区二区 | 亚洲一区二区三区高清 不卡 | 亚洲成人播放 | 亚洲 欧美 在线观看 | 午夜精品福利在线 | 亚洲国产欧美日韩精品小说 | 888午夜不卡理论久久 | 黄色三级三级三级免费看 | 2015xxx小明永久免费 | 91在线丝袜 | 日韩中文在线视频 | 91视频网址入口 | 国产精品亚洲综合第一区 | 日本欧美大码aⅴ在线播放 日本欧美不卡一区二区三区在线 | 小明成人免费永久性看看 | 亚洲一区不卡 | 天天草综合网 | 免费黄色大片网站 | 军营里娇喘呻吟声乳 | 日本高清色本免费现在观看 | 中日韩一级片 | 青青国产精品 | 国产精品尤物在线 | 98香蕉草草视频在线精品看 | 97精品国产91久久久久久 | 女的被到爽的羞羞视频 |