Django form表單與請求的生命周期步驟詳解
Django中請求的生命周期
HTTP請求及服務端響應中傳輸的所有數據都是字符串
步驟
用戶在瀏覽器中輸入url時,瀏覽器會生成請求頭和請求體發給服務器 url經過wsgi和中間件,到達路由映射表,在路由中一條一條進行匹配 視圖函數根據客戶端的請求查詢響應的數據,返回給 DjangoDjango把客戶端想要的數據做為一個字符串返回給客戶端 客戶端瀏覽器接收到返回的數據,經過渲染后顯示給用戶FBV
一個url對應一個視圖函數
在url匹配成功之后,會直接執行對應的視圖函數。
CBV
一個url對應一個類
url匹配成功找到視圖函數中對應的類,然后這個類回到請求頭中找到對應的Request.Method如果客戶端以post的方式提交請求,就執行類中的post方法如果客戶端以get的方式提交請求,就執行類中的get方法
步驟:
服務端發送包含url和method的請求,這兩個信息都是字符串類型 服務端通過路由映射表匹配成功后會自動去找dispatch方法 Django會通過dispatch反射的方式找到類中對應的方法并執行 勒種的方法執行完畢后,會把客戶端想要的數據返回給dispatch方法 dispatch方法把數據返回給客戶端form表單
定義:
Django的表單系統中,所有的表單都繼承自django.forms.Form類
Django的表單系統
form_obj.as_p #在html網頁渲染所有的字段label#為一個標簽添加id號form_obj.字段 #渲染指定的字段min_length#綁定字段的最短長度max_length#綁定字段的最長長度is_valid()#驗證用戶輸入的信息是否有效,返回一個布爾值cleaned_data() #清洗數據error_massage() #定義錯誤的返回信息#文件上傳:request.POST.get('file')#獲取上傳的文件的文件名request.FILES#獲取上傳文件的對象結果是一個字段file_obj.name#獲取上傳文件在內存中的名字#上傳文件時要使用分片傳輸的方式#上傳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中設定的功能model = model.UserInfo#顯示對于Model的字典,這里顯示用戶信息表fields = '__all__'#顯示數據表中所有的字段fields = ['username','age']#顯示數據表的某些指定的字段exclude = ['email']#不顯示數據表的某些字段#自定義頁面的標簽labels = {'username':'用戶名','age':'年齡','email':'郵箱'}#自定義在標簽后面顯示的提示幫助信息help_texts = {'username':'請輸入正確的用戶名','email':'請輸入正確的郵箱'}#自定義錯誤信息,用戶輸入錯誤時提示error_messages = {'username':{'required':'用戶名不能為空'},'email':{'invalid':'郵箱不能為空'}}#自定義標簽的類型,在這里把email這個輸入框的類型更改為email類型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'})}
總結
到此這篇關于Django-form表單與請求的生命周期的文章就介紹到這了,更多相關Django-form表單與請求的生命周期內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: