Python全系列 教程
3567个小节阅读:5929.1k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
视图是可以用来调用的,用来处理请求(request)并返回响应(response)
Django的视图有两种形式 : FBV与CBV
FBV 是基于函数的视图 (function base views)
CBV 是基于类的视图(class base views)
就是在视图里使用函数处理请求
xxxxxxxxxx
# urlconf 中
urlpatterns = [
path('fbv/', views.current_datetime),
]
# views 中
from django.http import HttpResponse
import datetime
def current_datetime(request):
now = datetime.datetime.now()
html = "<html><body>It is now %s.</body></html>" % now
return HttpResponse(html)
笔记
- 视图函数 current_datetime,每个视图函数都将一个HttpRequest 对象作为其第一个参数,该参数通常被命名request
- 视图函数的名称无关紧要,它不必以某种方式命名,以便Django能够识别它,但是函数命名一定要能够清晰的描述它的功能
- 视图函数返回一个HttpResponse响应的对象,每个视图函数负责返回一个HttpResponse对象(有例外,但我们在稍后讨论)
就是在视图里使用类处理请求
xxxxxxxxxx
# urlconf 中
urlpatterns = [
# 一定要使用 as_view() ,记住 小括号
path('cbv/', views.MyView.as_view()),
]
# views中
from django.http import HttpResponse
from django.views import View
class MyView(View):
def get(self, request):
return HttpResponse('get OK')
def post(self, request):
return HttpResponse('post OK')
笔记
- CBV提供了一个as_view()静态方法(也就是类方法),调用这个方法,会创建一个类的实例,然后通过实例调用dispatch()方法,dispatch()方法会根据request的method的不同调用相应的方法来处理request(如get(),post()等)
- 提高了代码的复用性,可以使用面向对象的技术,比如Mixin(多继承)
- 可以用不同的函数针对不同的HTTP方法处理,而不是通过很多 if 判断,可以提高代码可读性
实时效果反馈
1. 关于Django,FBV与CBV说法错误的是?
A FBV和CBV是Django视图的处理2种方式
B 视图函数就是普通参数可以传递任意数量参数
C FBV就是在视图里使用函数处理请求
D CBV就是在视图里使用类处理请求
答案
1=>B