Django 视图 - FBV 与 CBV学习笔记
FBV
FBV(function-based view)即函数视图,是 Django 最常用的视图类型之一。在 Django 中,通过编写 Python 函数来实现请求处理,将请求的信息以参数的形式传递给这个函数,最终返回 HttpResponse 对象。函数视图具有简单、直观、易于理解的优点。
实例
一个简单的返回 "Hello, World!" 的函数视图:
pythonCopy Codefrom 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 Codefrom 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。在实际应用中我们可以根据具体情况选择适合自己项目的视图类型。