繁体   English   中英

Django 中的 CBV 混合是什么?

[英]What is a CBV mixin in Django?

我正在阅读有关 Django UserPassesTestMixin mixin 的信息,并且遇到了CBV Mixin一词。 这是什么,它有什么用处? CBV Mixin 是一种通用类型的 mixin,除了 Django 之外的任何其他框架中是否有CBV mixin?

CBV,在 Django 中,代表“基于类的视图”。 这些是框架提供的一组视图,作为 Python 类而不是函数。 有关更完整的解释,请参阅文档

它们的部分实现是通过组合定义特定行为的 mixin 类和基类(例如View基类 class)来实现的。 同样, 文档有关于标准/包含的 mixin 的其他详细信息。 例如,渲染模板以产生响应的常见行为在TemplateResponseMixin中定义。

CBV只是基于类的视图的一种快捷方式,它是 Django 中任何视图的通用术语,在您的代码中定义为 class,尤其是从django.views.View继承的视图。

所以CBV Mixin就是任何可以在基于类的视图中使用的 mixin。

基于CBVClass Based Viewsdjango.views.generic中为特定任务(如ListViewCreateView等)开发的预定义类。
CBV Mixins就像普通的CBV一样,但它们旨在为CBV添加一些限制,例如LoginRequiredMixinUserPassesTestMixin ,有关更多详细信息,请参阅此链接:
1-https://docs.djangoproject.com/en/3.2/topics/class-based-views/
2- https://docs.djangoproject.com/en/3.2/topics/class-based-views/mixins/
3- https://djangodeconstructed.com/2020/04/27/roll-your-own-class-based-views-in-django/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM