django中的FBV和CBV(django是mvc)

网友投稿 241 2022-08-27


django中的FBV和CBV(django是mvc)

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

一、FBV

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

看代码:

urls.py

from django.conf.urls import url, include# from django.contrib import adminfrom mytest import viewsurlpatterns = [ # url(r‘^admin/‘, admin.site.urls), url(r‘^index/‘, views.index),]

views.py

from django.shortcuts import renderdef 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

index

上面就是FBV的使用。

二、CBV

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

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

from mytest import viewsurlpatterns = [ # 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 Viewclass 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 ,类中函数名必须小写。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:从一段简单的代码来看Python中的类与实例(python 类和实例)
下一篇:executor包执行器功能
相关文章

 发表评论

暂时没有评论,来抢沙发吧~