Django中的Generics,Views,Viewsets和Mixins有什么区别?

时间:2018-01-29 17:32:59

标签: python django django-rest-framework views difference

我是Django和Django-Rest的新手。我很困惑何时应该使用这些?它们的优点和缺点是什么?我只看过这个 - http://www.cdrf.co

我唯一知道的是有很多方法可以做一件事。但这对我来说完全不清楚。

1 个答案:

答案 0 :(得分:3)

在Django中,我们经常在项目中将这四个术语用于不同的目的。我试图通过链接到每个术语的详细描述来收集和分享实际含义。请检查您是否觉得这些有用。

通用视图:

“Django的通用视图......被开发为常见用法模式的快捷方式......它们采用视图开发中的某些常见习语和模式并对其进行抽象,以便您可以快速编写数据的常见视图而无需重复你自己“。 - Django Documentation

Read more details

<强> 查看:

视图函数或简称视图只是一个Python函数,它接受Web请求并返回Web响应。此响应可以是网页的HTML内容,重定向,404错误,XML文档或图像。 。 。或者其他什么,真的。视图本身包含返回该响应所需的任意逻辑。只要在Python路径上,此代码就可以存在于您想要的任何地方。没有其他要求 - 没有“魔力”,可以这么说。为了将代码放在某个地方,惯例是将视图放在名为views.py的文件中,放在项目或应用程序目录中。

Read more details

<强> Viewsets:

Django REST框架允许您在一个类中组合一组相关视图的逻辑,称为ViewSet。在其他框架中,您还可以找到类似“资源”或“控制器”之类的概念上类似的实现。 ViewSet类只是一种基于类的View,它不提供任何方法处理程序,如.get()或.post(),而是提供诸如.list()和.create()之类的动作。 p>

ViewSet的方法处理程序仅使用.as_view()方法绑定到最终化视图时的相应操作。

Read more details

<强> 混入:

mixin类提供用于提供基本视图行为的操作。请注意,mixin类提供了操作方法,而不是直接定义处理程序方法,例如.get()和.post()。这允许更灵活的行为组合。 mixin类可以从rest_framework.mixins导入。

Read more details