Django的CBV和FBV

作者: 廖马儿 | 来源:发表于2017-08-10 14:43 被阅读12次

django提供了两种对应关系。

FBV: function base view
CBV:class base view

views.py中就是使用的FBV。

def index(request):
    return HttpResponse("Index")


def login(request):
    if request.method == 'GET':
        return render(request, 'login.html')
    elif request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('pwd')
        gender = request.POST.getlist('gender')
        intrest = request.POST.getlist('intrest')
        img1 = request.FILES.get('img1')
        print img1

        if username == 'a' and password == 'a':
            return render(request, 'index.html')
        else:
            return render(request, 'login.html')
    else:
        return redirect('index/')

urls.py中使用:

from app01 import views as app01_v

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/', app01_v.index),
    url(r'^login/', app01_v.login),
]

CBV的方式:

urls.py中:
调用类as_view() 方法(因为About是继承与View类的)。

from app01 import views as app01_v

urlpatterns = [
    url(r'^about/', app01_v.About.as_view()),
]

views.py中:

class About(View):
    def dispatch(self, request, *args, **kwargs):
        #调用父类dispatch   super这里调用的就是下面的get或者post
        result = super(About, self).dispatch(request, *args, **kwargs)
        return result

    def get(self, request):
        return render(request, 'about.html')
    def post(self, request):
        return render(request, 'about.html')

相关文章

  • DRF进阶

    一、Django的FBV和CBV FBV:Function-base views基于函数的视图CBV:Class-...

  • django中的FBV和CBV

    django中请求处理方式有2种:FBV 和 CBV FBV FBV(function base views) 就...

  • Django-FBV 和 CBV

    FBV 和 CBV django中请求处理方式有2种: FBV(function base views)** 就是...

  • Django 的 cbv

    正如我们了解到的,Django 写视图函数有两种写法:cbv 和 fbv。cbv 提倡使用类来写,fbv 使用函数...

  • Django中的CBV

    django中请求处理方式有2种:FBV 和 CBV CBV CBV(class base views) 就是在视...

  • Django之FBV和CBV(dispatch方法)

    一、FBV与CBV在我们日常学习Django中,都是用的FBV(function base views)方式,就是...

  • Django的CBV和FBV

    django提供了两种对应关系。 views.py中就是使用的FBV。 urls.py中使用: CBV的方式: u...

  • django的FBV和CBV

    一 . 什么是FBV&CBV FBV -Function Base VIew CBV-Class Base Vie...

  • Django使用CBV处理请求

    在Django中有两种基本的处理用户请求的方式,分别是FBV和CBV,这里讲的是关于使用CBV处理用户请求的方式 ...

  • Django-视图CBV执行流程详解

    FBV和CBV其实就是要么写函数要么写类,那么内部原理是怎么实现? FBV写法 CBV写法 原理 FBV可以直接通...

网友评论

    本文标题:Django的CBV和FBV

    本文链接:https://www.haomeiwen.com/subject/iehhrxtx.html