Django(二)----函数视图与类视图

函数视图:

Django(二)----函数视图与类视图_第1张图片

from django.http import HttpResponse

# Create your views here.
def index(request):
    """
    request:是HttpResponse对象,前端的请求信息会全部传递给这个参数request
    return:必须返回一个HttpResponse对象或者子对象
    """
    return HttpResponse("

Hello,大佬们!

") # 1.创建视图 # 2.将视图路由添加到全局路由中

函数视图的参数必须有一个参数,可以命名为request,request是HttpResponse对象,前端的请求信息会全部传递给这个参数request,我们就可以从request中获取前端的数据,包括请求参数,请求方式等等。。。

前端在做post请求时,默认会因为Django的csrf机制拒绝,为了安全,可以将全局配置settings.py文件中的MIDDLEWARE列表的csrf注释,以达到接收post请求目的。

Django(二)----函数视图与类视图_第2张图片

Django(二)----函数视图与类视图_第3张图片

         断点调试查看request数据

Django(二)----函数视图与类视图_第4张图片

         限制请求方法:

Django(二)----函数视图与类视图_第5张图片

        效果: 

Django(二)----函数视图与类视图_第6张图片

当代码太多,函数视图就不能满足要求了,所以推荐类视图

类视图:

        类视图,必须继承View这个基类

Django(二)----函数视图与类视图_第7张图片

         

        1。定义类视图
        2。定义类视图路由
from django.http import HttpResponse
from django.views import View
# 1。定义类视图
class IndexView(View):
    """
    主页类视图
    """
    def get(self, request):
        # get请求
        return HttpResponse("

GET请求:Hello,大佬们!

") def post(self, request): # post请求 return HttpResponse("

POST请求:Hello,大佬们!

") # 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()),
]

效果:

Django(二)----函数视图与类视图_第8张图片

 当请求方法为类视图中未定义的方法时,会报405

你可能感兴趣的:(后端开发-Django,django,python,后端)