Python - Django - FBV and CBV

FBV:

Function Base View, View-Based Function

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, class-based view

views.py:

Import the render django.shortcuts from, the HttpResponse 
from django.views need to import the CBV Import View # 


# the CBV 
class the Upload (View): 
    # get function is defined, for processing a get request 
    DEF get (Self, Request): 
        return the render (Request, " upload.html ") 

    # define post functions for processing the post request 
    DEF post (Self, request): 
        filename = request.FILES [" upload_file "] name. 
        WB") F with AS Open (filename, ": 
            for the chunk in request.FILES [ "upload_file"] of chunks are ():. 
                f.write (chunk) 
        return HttpResponse ( "Upload 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
]

 

Guess you like

Origin www.cnblogs.com/sch01ar/p/11271682.html