1. 程式人生 > >djangoCBV、檔案上傳

djangoCBV、檔案上傳

1 request物件
method:請求方式
GET:get請求的引數(post請求,也可以攜帶引數)
POST:post請求的引數(本質是從bdoy中取出來,放到裡面了)
COOKIES--->後面講
META:字典(放著好多東西,前端傳過來的,一定能從其中拿出來)
body:post提交的資料
path:請求的路徑,不帶引數
request.get_full_path() 請求路徑,帶引數

2 HttpResponse物件
-三件套
-JsonResponse:往前端返回json格式資料
-轉列表格式:指定safe=False
-中文字元問題:json_dumps_params={'ensure_ascii':False}

3 wsgiref,uwsgi,---都遵循wsgi協議


-遵循一個協議wsgi(Web Server Gateway Interface web服務閘道器介面)

4 CBV(基於類的檢視)和FBV(基於函式的檢視)
-cbv:一個路由寫一個類
-先定義一個類:繼承自View

from django.views import View
            class MyClass(View):
                # 當前端發get請求,會響應到這個函式
                def get(self, request):
                    return render(request,'
index.html') # 當前端發post請求,會響應到這個函式 def post(self,request): print(request.POST.get('name')) return HttpResponse('cbv--post')
View Code

-在路由層:
re_path('^myclass/$',views.MyClass.as_view()),

5 檔案上傳
-form表單預設提交的編碼方式是enctype="application/x-www-form-urlencoded"
-前端:如果要form表單上傳檔案,必須指定編碼方式為:multipart/form-data
-後端:

file=request.FILES.get('myfile')
            with open(file.name,'wb') as f:
                for line in file:
                    f.write(line)
            
View Code