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

函数视图:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chuntian_tester

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值