Django请求处理的两种方式:FBV 和 CBV

版权声明:欢迎交流,菲宇运维! https://blog.csdn.net/bbwangj/article/details/85843992

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

一、FBV

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

看代码:

urls.py

from django.conf.urls import url, include
from mytest import views 


urlpatterns = [ 
    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>

二、CBV

CBV(class base views) 就是在视图里使用类处理请求。

将上述代码中的urls.py 修改为如下:

from mytest import views

urlpatterns = [
    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‘)

 

参考文章

https://blog.csdn.net/qq471011042/article/details/79344526

https://blog.csdn.net/qq471011042/article/details/79347062

猜你喜欢

转载自blog.csdn.net/bbwangj/article/details/85843992