序文
FBVは(関数ベースビュー)、ビューのリクエストを処理するために、通常、慣れるDjangoの学習を開始する時間である方法を機能を使用することです。
CBV(クラスベースビュー)は、オブジェクト指向プログラミングであるビューの要求処理に使用されます。
インタビューは基本的に尋ねられたとき:2の間の違い、あなたは通常、書き込みビューがビュー機能(FBV)に基づいていますか、またはクラスベースのビュー(CBV)?
あなただけのエントリの初期の段階ではまだその記述に基づいてビュー機能を記述する場合。
FBVモード
FBV(関数ベースビュー)ビュー関数は関数をrequest.methodリクエストがGETまたはプロセスに対応するためにPOST要求である方法によって決定された場合にviews.pyユーザ要求が、処理されるファイルで定義されています。
# views.py
from django.shortcuts import render
from django.http import HttpResponse, JsonResponse
# 上海悠悠,QQ交流群:750815713
# Create your views here.
# function base views
def fbvdemo(request):
'''function base views'''
context = {
"code": 0,
"msg": ""
}
if request.method == "GET":
context["msg"] = "这是fbvdemo get请求"
return JsonResponse(context)
if request.method == "POST":
context["msg"] = "这是fbvdemo POST请求"
return JsonResponse(context)
urls.pyのconfigureのアクセスパス
from django.conf.urls import url
urlpatterns = [
url(r'^fbvdemo/$', views.fbvdemo)
]
CBVモード
CBV(クラスベースビュー)の閲覧要求の処理に使用されています
- カスタムビュークラスは親クラスを継承する必要があります
- コードの再利用性を改善する、オブジェクト指向技術は、ミックスイン(多重継承)として、使用することができます
- 決定されていない場合、コードの可読性を向上させ、多くの中で、様々な異なる機能のHTTPメソッド用に処理することができます
- CBV表示モード継承するクラスでは、不要なモードの決意の要求に応じて様々な機能を提供して行われ、あなたはサブクラスを継承し、上書きする方法を指示することができます
- 親要求応答関数のオーバーライドは、親クラスのディスパッチの配布方法によって反射実施形態CBVモードサブクラス継承
- もしシステム()関数の代替ビューをルーティングMyview.as_viewのurls.pyに使用されなければなりません
# views.py
from django.shortcuts import render
from django.http import HttpResponse, JsonResponse
# Create your views here.
# 上海悠悠,QQ交流群:750815713
# class base views
class Cbvdemo(View):
context = {
"code": 0,
"msg": ""
}
def get(self, request):
self.context["msg"] = "这是Cbvdemo get请求"
return JsonResponse(self.context)
def post(self, request):
self.context["msg"] = "这是Cbvdemo post请求"
return JsonResponse(self.context)
urls.pyのconfigureのアクセスパス
from django.conf.urls import url
urlpatterns = [
url(r'^fbvdemo/$', views.fbvdemo),
url(r'^cbvdemo/$', views.Cbvdemo.as_view()),
]
コードの可読性が懸念しているから機能的に機能を対応するこれらの2つの方法が、達成することができ、CBVモードを使用することをお勧めします。
また、CBVによって、あなたはGETまたはPOSTメソッドを実行する前に、あなたは派遣を上書きすることができ、追加の手順を実行します。