FBV:
Function Base View,基于函数的视图
views.py:
from django.shortcuts import render, HttpResponse # FBV def upload(request): if request.method == "POST": filename = request.FILES["upload_file"].name with open(filename, "wb") as f: for chunk in request.FILES["upload_file"].chunks(): f.write(chunk) return HttpResponse("上传OK") else: return render(request, "upload.html")
urls.py:
from django.conf.urls import url from app01 import views urlpatterns = [ url(r'^upload/', views.upload), # FBV ]
CBV:
Class Base View,基于类的视图
views.py:
from django.shortcuts import render, HttpResponse from django.views import View # CBV 需要导入 # CBV class Upload(View): # 定义 get 函数,用于处理 get 请求 def get(self, request): return render(request, "upload.html") # 定义 post 函数,用于处理 post 请求 def post(self, request): filename = request.FILES["upload_file"].name with open(filename, "wb") as f: for chunk in request.FILES["upload_file"].chunks(): f.write(chunk) return HttpResponse("上传OK")
urls.py:
from django.conf.urls import url from app01 import views urlpatterns = [ # url(r'^upload/', views.upload), # FBV url(r'^upload/', views.Upload.as_view()), # CBV ]