Django 视图 - FBV 与 CBV学习笔记

FBV

FBV(function-based view)即函数视图,是 Django 最常用的视图类型之一。在 Django 中,通过编写 Python 函数来实现请求处理,将请求的信息以参数的形式传递给这个函数,最终返回 HttpResponse 对象。函数视图具有简单、直观、易于理解的优点。

实例

一个简单的返回 "Hello, World!" 的函数视图:

pythonCopy Code
from django.http import HttpResponse def hello(request): return HttpResponse("Hello, World!")

这个函数接收一个 HttpRequest 对象作为参数,并返回一个 HttpResponse 对象,其中包含了 "Hello, World!" 的字符串内容。我们可以将这个函数作为视图函数,在 urlconf 中绑定一个 URL,使得我们可以通过浏览器请求该 URL,从而使用这个视图函数输出内容。

CBV

CBV(class-based view)即基于类的视图,是 Django 官方推荐的一种新的视图类型。通过继承 Django 的基础视图类来创建自己的视图类,从而实现请求处理,具有更好的可重用性和可扩展性。

实例

一个简单的返回 "Hello, World!" 的类视图:

pythonCopy Code
from django.views import View from django.http import HttpResponse class HelloView(View): def get(self, request): return HttpResponse("Hello, World!")

这个类继承自 View 类,实现了 get 方法。与 FBV 不同,我们不需要在 urlconf 中绑定这个视图类,而是通过 URL 模式去自动匹配它。

总结

FBV 和 CBV 都是 Django 视图的两种常见实现方式,每个人都有自己偏爱的方式。FBV 具备简单易用的优点,CBV 在可重用性、可扩展性方面优于 FBV。在实际应用中我们可以根据具体情况选择适合自己项目的视图类型。