美文网首页
django中的FBV和CBV

django中的FBV和CBV

作者: 马小跳_ | 来源:发表于2017-12-14 10:04 被阅读150次

django中请求处理方式有2种:FBV 和 CBV

FBV

FBV(function base views) 就是在视图里使用函数处理请求。
urls.py

from django.conf.urls import url, include
# from django.contrib import admin
from mytest import views

urlpatterns = [
    # url(r‘^admin/‘, admin.site.urls),
    url(r‘^index/‘, views.index),
]

views.py

from django.shortcuts import render

def index(req):
    if req.method == ‘POST‘:
        print(‘method is :‘ + req.method)
    elif req.method == ‘GET‘:
        print(‘method is :‘ + req.method)
    return render(req, ‘index.html‘)

注意此处定义的是函数【def index(req):】

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>index</title>
</head>
<body>
    <form action="" method="post">
        <input type="text" name="A" />
        <input type="submit" name="b" value="提交" />
    </form>
</body>
</html>

上面就是FBV的使用。

二、CBV

CBV(class base views) 就是在视图里使用类处理请求。
将上述代码中的urls.py 修改为如下:

from mytest import views

urlpatterns = [
    # url(r‘^index/‘, views.index),
    url(r‘^index/‘, views.Index.as_view()),
]

注:url(r‘^index/‘, views.Index.as_view()), 是固定用法。
将上述代码中的views.py 修改为如下:

from django.views import View


class Index(View):
    def get(self, req):
        print(‘method is :‘ + req.method)
        return render(req, ‘index.html‘)

    def post(self, req):
        print(‘method is :‘ + req.method)
        return render(req, ‘index.html‘)

注:类要继承 View ,类中函数名必须小写
两种方式没有优劣,都可以使用。

相关文章

  • django中的FBV和CBV

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

  • DRF进阶

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

  • Django-FBV 和 CBV

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

  • Django中的CBV

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

  • Django 的 cbv

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

  • Django之FBV和CBV(dispatch方法)

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

  • Django中的FBV和CBV

    FBV fbv就是在url中一个路径对应一个函数 在视图函数中 CBV cbv就是在url中一个路径对应一个类 在...

  • Django的CBV和FBV

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

  • django的FBV和CBV

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

  • 20-Django之CBV、序列化、Form表单

    一、FBV & CBV CBV定义 Djanggo中的请求处理方式FBV: Function Bas...

网友评论

      本文标题:django中的FBV和CBV

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