小編這次要給大家分享的是詳解Django中form表單與請(qǐng)求的生命周期操作,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
堅(jiān)守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價(jià)值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都三維植被網(wǎng)小微創(chuàng)業(yè)公司專業(yè)提供成都定制網(wǎng)站營銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計(jì)、底層架構(gòu)、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。Django
中請(qǐng)求的生命周期
HTTP請(qǐng)求及服務(wù)端響應(yīng)中傳輸?shù)乃袛?shù)據(jù)都是字符串
步驟
url
時(shí),瀏覽器會(huì)生成請(qǐng)求頭和請(qǐng)求體發(fā)給服務(wù)器url
經(jīng)過wsgi
和中間件,到達(dá)路由映射表,在路由中一條一條進(jìn)行匹配Django
Django
把客戶端想要的數(shù)據(jù)做為一個(gè)字符串返回給客戶端FBV
一個(gè)url
對(duì)應(yīng)一個(gè)視圖函數(shù)
在url
匹配成功之后,會(huì)直接執(zhí)行對(duì)應(yīng)的視圖函數(shù)。
CBV
一個(gè)url
對(duì)應(yīng)一個(gè)類
url
匹配成功找到視圖函數(shù)中對(duì)應(yīng)的類,然后這個(gè)類回到請(qǐng)求頭中找到對(duì)應(yīng)的Request.Method
如果客戶端以post的方式提交請(qǐng)求,就執(zhí)行類中的post方法如果客戶端以get的方式提交請(qǐng)求,就執(zhí)行類中的get方法
步驟:
url
和method的請(qǐng)求,這兩個(gè)信息都是字符串類型Django
會(huì)通過dispatch反射的方式找到類中對(duì)應(yīng)的方法并執(zhí)行form表單
定義:
Django
的表單系統(tǒng)中,所有的表單都繼承自django.forms.Form
類
Django
的表單系統(tǒng)
form_obj.as_p #在html網(wǎng)頁渲染所有的字段 label #為一個(gè)標(biāo)簽添加id號(hào) form_obj.字段 #渲染指定的字段 min_length #綁定字段的最短長度 max_length #綁定字段的最長長度 is_valid() #驗(yàn)證用戶輸入的信息是否有效,返回一個(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()