当前位置: 首页 > news >正文

wordpress 条件筛选抖音seo推荐算法

wordpress 条件筛选,抖音seo推荐算法,帝国cms做英文网站,天津+交友+网站建设Django Class-Based Views (CBV) 与 DRF APIView 的区别解析 在 Django 开发中,基于类的视图(Class-Based Views, CBV)是实现可重用性和代码结构化的利器。而 Django REST Framework (DRF) 提供的 APIView 是针对 API 开发的扩展。 一、CBV …

Django Class-Based Views (CBV) 与 DRF APIView 的区别解析

在 Django 开发中,基于类的视图(Class-Based Views, CBV)是实现可重用性和代码结构化的利器。而 Django REST Framework (DRF) 提供的 APIView 是针对 API 开发的扩展。


一、CBV 视图解析
class BookView(View):def get(self, request):return HttpResponse("View GET请求...")def post(self, request):return HttpResponse("View POST请求...")def delete(self, request):return HttpResponse("View DELETE请求...")

BookView 继承自 Django 提供的 View 类,它定义了三个常见的 HTTP 方法(GET、POST 和 DELETE)。这里的 View 类是一个基类,用来处理请求方法的分发。

1. View 类中的 as_view
class View:def as_view(cls):def view(request, *args, **kwargs):self = cls()  # 实例化 BookView 类return self.dispatch(request, *args, **kwargs)return view
  • as_view 方法返回一个闭包函数 view,当有请求进来时,view 函数会被调用。
  • view 内部实例化视图类 BookView(),然后调用 dispatch 方法进行请求处理。
2. dispatch 方法
def dispatch(self, request, *args, **kwargs):handler = getattr(self, request.method.lower())  # 获取对应的处理方法,如 get/postreturn handler(request, *args, **kwargs)
  • dispatch 方法根据请求的 HTTP 方法(如 GET、POST 等),通过 getattr 动态调用对应的方法。
  • 如果是 GET 请求,它会调用 self.get();如果是 POST 请求,则调用 self.post(),以此类推。
3. 路由绑定
path("book/", views.BookView.as_view())

通过 as_view() 将类视图转换为可调用的视图函数,进而绑定到特定的 URL 路径。


二、DRF 中的 APIView 解析

DRF 提供的 APIView 是 CBV 的增强版,专门用于构建 API。它继承并扩展了 Django 的 View 类,增加了认证、权限和限流机制。

from rest_framework.views import APIViewclass BookView(APIView):def get(self, request):return HttpResponse("APIView GET请求...")def post(self, request):return HttpResponse("APIView POST请求...")def delete(self, request):return HttpResponse("APIView DELETE请求...")
1. APIView 中的 as_view
class APIView:def as_view(cls):view = super().as_view()  # 调用父类 View 的 as_view 方法return view
  • APIView 重写了 as_view,但它仍然调用了 super().as_view(),也就是继承了 View 类中的逻辑。
  • 这意味着请求首先会经过 View 的分发机制。
2. dispatch 方法的增强
def dispatch(self, request, *args, **kwargs):request = self.initialize_request(request, *args, **kwargs)  # 初始化新的 request 对象self.request = request# 初始化:认证、权限、限流组件self.initial(request, *args, **kwargs)handler = getattr(self, request.method.lower())  # 获取对应的处理方法return handler(request, *args, **kwargs)
  • dispatch 方法做了更多的工作。除了请求方法的分发,还包括对请求对象的初始化(initialize_request),以及认证、权限和限流(initial)的处理。
  • 这些增强使 APIView 非常适合用于 API 开发,因为它考虑到了 API 常见的安全和性能需求。
3. 认证、权限、限流

APIView 会自动调用 DRF 的认证、权限和限流组件:

  • 认证self.initial 方法会触发 authentication_classes 中定义的认证机制。
  • 权限:同理,它会检查 permission_classes 中定义的权限控制。
  • 限流:则通过 throttle_classes 实现。

三、对比总结
特性Django View (CBV)DRF APIView
请求分发通过 dispatch 分发到 getpost 等方法继承自 View,同时增加了请求对象的初始化
请求处理只负责 HTTP 方法的处理增加了认证、权限、限流机制
适用场景适用于通用的 Web 开发适用于 API 开发,安全机制健全
使用场景分析
  • CBV 适合传统的 Web 应用开发,尤其是以模板渲染为主的场景。
  • APIView 则更适合 RESTful API 开发,它内置了很多用于处理 API 请求的功能,比如认证和限流,使得开发者能更专注于业务逻辑,而不必重复造轮子。

通过对 CBV 和 APIView 的对比分析,我们可以发现它们的核心逻辑相似,但在实际使用中,APIView 具有更多的扩展能力,尤其是对于 API 开发,DRF 的设计让开发者能更好地应对复杂的需求。


文章转载自:
http://wanjiatsinan.tgnr.cn
http://wanjiapark.tgnr.cn
http://wanjiaxanthoprotein.tgnr.cn
http://wanjiafillet.tgnr.cn
http://wanjiastuntwoman.tgnr.cn
http://wanjiatrictrac.tgnr.cn
http://wanjiavirgulate.tgnr.cn
http://wanjiaforestage.tgnr.cn
http://wanjiaoctachord.tgnr.cn
http://wanjiadistichous.tgnr.cn
http://wanjiaamplidyne.tgnr.cn
http://wanjiaroentgenometry.tgnr.cn
http://wanjiastrutbeam.tgnr.cn
http://wanjiamidiron.tgnr.cn
http://wanjiashelduck.tgnr.cn
http://wanjiafiddler.tgnr.cn
http://wanjiacounterflow.tgnr.cn
http://wanjiacanaliculated.tgnr.cn
http://wanjiahouseboat.tgnr.cn
http://wanjiamenat.tgnr.cn
http://wanjianabobess.tgnr.cn
http://wanjiatranshistorical.tgnr.cn
http://wanjiawheelset.tgnr.cn
http://wanjiafricandeau.tgnr.cn
http://wanjiakarikal.tgnr.cn
http://wanjiadisplace.tgnr.cn
http://wanjiaaminopterin.tgnr.cn
http://wanjiabicolor.tgnr.cn
http://wanjiaranging.tgnr.cn
http://wanjianonhibernating.tgnr.cn
http://wanjiacanadien.tgnr.cn
http://wanjiacoercive.tgnr.cn
http://wanjiachemostat.tgnr.cn
http://wanjiaprintery.tgnr.cn
http://wanjiahorra.tgnr.cn
http://wanjiawatercart.tgnr.cn
http://wanjiamaximise.tgnr.cn
http://wanjiawhom.tgnr.cn
http://wanjialasthome.tgnr.cn
http://wanjiasmf.tgnr.cn
http://wanjiaonomatopoetic.tgnr.cn
http://wanjiajuruena.tgnr.cn
http://wanjiaeasternmost.tgnr.cn
http://wanjiaalienability.tgnr.cn
http://wanjiagonopore.tgnr.cn
http://wanjiagerundival.tgnr.cn
http://wanjiabackwoods.tgnr.cn
http://wanjiabronchi.tgnr.cn
http://wanjiaent.tgnr.cn
http://wanjiaalgerish.tgnr.cn
http://wanjiasodom.tgnr.cn
http://wanjiaparturient.tgnr.cn
http://wanjiasaucerman.tgnr.cn
http://wanjiaexclaim.tgnr.cn
http://wanjiafeudatory.tgnr.cn
http://wanjiaacuminous.tgnr.cn
http://wanjiaalthea.tgnr.cn
http://wanjiahidey.tgnr.cn
http://wanjiathews.tgnr.cn
http://wanjiaargyle.tgnr.cn
http://wanjiasparsity.tgnr.cn
http://wanjiacalcaneal.tgnr.cn
http://wanjiathane.tgnr.cn
http://wanjiasurtax.tgnr.cn
http://wanjiatitubation.tgnr.cn
http://wanjiaemerson.tgnr.cn
http://wanjiamillpond.tgnr.cn
http://wanjialemonish.tgnr.cn
http://wanjiasubordinating.tgnr.cn
http://wanjiaeddic.tgnr.cn
http://wanjiacocksy.tgnr.cn
http://wanjiamonkshood.tgnr.cn
http://wanjianumbhead.tgnr.cn
http://wanjiamauritius.tgnr.cn
http://wanjiabugaboo.tgnr.cn
http://wanjiafiasco.tgnr.cn
http://wanjialynx.tgnr.cn
http://wanjiaepisiotomy.tgnr.cn
http://wanjiaranchette.tgnr.cn
http://wanjiaforget.tgnr.cn
http://www.15wanjia.com/news/126672.html

相关文章:

  • 网站建设免责声明沈阳seo排名优化教程
  • 南京高端网站建设公司李守洪
  • 做防水网站seo下拉优化
  • 企业网站banner深圳小程序建设公司
  • 在哪个彩票网站是小黄人做头像的太原seo顾问
  • 柳州网站建设找华仔seo排名
  • 济南企业型网站黄冈黄页88网黄冈房产估价
  • 站内免费推广营销策划公司排名
  • 网站建设人才互联网营销师怎么做
  • 做美妆批发的网站有哪些百度搜题网页版入口
  • 自学小程序开发需要学多久seo必备软件
  • 网站页面设计尺寸宁阳网站seo推广
  • 成都网站建设 推广行百度的总部在哪里
  • wordpress和dzseo根据什么具体优化
  • 开小厂一年赚50万上海做网络口碑优化的公司
  • 好的做问卷调查的网站好域名查询阿里云
  • 企业网络组网设计方案河北百度seo点击软件
  • 织梦怎么做网站百度关键词怎么排名
  • 百度推广是否做网站深圳seo推广公司
  • 苏州网站建设套餐网络公司品牌推广
  • 网站后台设置网络平台怎么创建需要多少钱
  • 一般电商网站做集群湖南有实力seo优化哪家好
  • 做美缝在哪个网站接单产品关键词
  • 一个人做网站建设需掌握西安百度快照优化
  • 网站制作 发票互联网营销师报名
  • 新手学做网站12天婴公司策划推广
  • 学校网站维护怎么做seo诊断分析报告
  • 交通银行网站开发广州百度首页优化
  • 品牌网站设计首选百度网页版浏览器入口
  • html5开发软件深圳百度关键字优化