函数视图:
from django.http import HttpResponse
# Create your views here.
def index(request):
"""
request:是HttpResponse对象,前端的请求信息会全部传递给这个参数request
return:必须返回一个HttpResponse对象或者子对象
"""
return HttpResponse("<h1>Hello,大佬们!</h1>")
# 1.创建视图
# 2.将视图路由添加到全局路由中
函数视图的参数必须有一个参数,可以命名为request,request是HttpResponse对象,前端的请求信息会全部传递给这个参数request,我们就可以从request中获取前端的数据,包括请求参数,请求方式等等。。。
前端在做post请求时,默认会因为Django的csrf机制拒绝,为了安全,可以将全局配置settings.py文件中的MIDDLEWARE列表的csrf注释,以达到接收post请求目的。
断点调试查看request数据
限制请求方法:
效果:
当代码太多,函数视图就不能满足要求了,所以推荐类视图
类视图:
类视图,必须继承View这个基类
1。定义类视图
2。定义类视图路由
from django.http import HttpResponse
from django.views import View
# 1。定义类视图
class IndexView(View):
"""
主页类视图
"""
def get(self, request):
# get请求
return HttpResponse("<h1>GET请求:Hello,大佬们!</h1>")
def post(self, request):
# post请求
return HttpResponse("<h1>POST请求:Hello,大佬们!</h1>")
# 2。定义类视图路由
子路由类视图路由中配置:
先导入路由文件views
如果是类视图,path第二个参数为:类视图名.as_view(),必须有括号!
# 定义子路由
# 1.导入path函数
from django.urls import path
# 2.先导入要添加路由的视图再配置路由
from projects import views
urlpatterns = [
# 如果是类视图,path第二个参数为:类视图名.as_view(),必须有括号!
path('', views.IndexView.as_view()),
]
效果:
当请求方法为类视图中未定义的方法时,会报405