• Django中类视图的简介及使用


    类视图

    1 类视图引入

    以函数的方式定义的视图称为函数视图,函数视图便于理解。但是遇到一个视图对应的路径提供了多种不同HTTP请求方式的支持时,便需要在一个函数中编写不同的业务逻辑,代码可读性与复用性都不佳。

     def register(request):
        """处理注册"""
    
        # 获取请求方法,判断是GET/POST请求
        if request.method == 'GET':
            # 处理GET请求,返回注册页面
            return render(request, 'register.html')
        else:
            # 处理POST请求,实现注册逻辑
            return HttpResponse('这里实现注册逻辑')
    

    在Django中也可以使用类来定义一个视图,称为类视图

    使用类视图可以将视图对应的不同请求方式以类中的不同方法来区别定义。如下所示

    from django.views.generic import View
    
    class RegisterView(View):
        """类视图:处理注册"""
    
        def get(self, request):
            """处理GET请求,返回注册页面"""
            return render(request, 'register.html')
    
        def post(self, request):
            """处理POST请求,实现注册逻辑"""
            return HttpResponse('这里实现注册逻辑')
    

    类视图的好处:

    • 代码可读性好
    • 类视图相对于函数视图有更高的复用性, 如果其他地方需要用到某个类视图的某个特定逻辑,直接继承该类视图即可

    2 类视图使用

    定义类视图需要继承自Django提供的父类View,可使用from django.views.generic import View或者from django.views.generic.base import View 导入,定义方式如上所示。

    配置路由时,使用类视图的as_view()方法来添加。

    urlpatterns = [
        # 视图函数:注册
        # url(r'^register/$', views.register, name='register'),
        # 类视图:注册
        url(r'^register/$', views.RegisterView.as_view(), name='register'),
    ]
  • 相关阅读:
    kafka 0.10.2 cetos6.5 集群部署
    zookeeper3.4.9 centos6.5 集群安装
    centos6.5 scala环境变量
    用易语言写个简单的小爬虫其中的关键点
    MYSQL错误码2059解决办法
    python随机生成经纬度(用于爬虫参数伪造)
    frida框架hook获取方法输出参数(常用于简单的so输出参数获取,快速开发)
    安卓日常开发和逆向中常用的shell命令与非shell命令
    从了解机器学习开始
    numpy的使用方法
  • 原文地址:https://www.cnblogs.com/skaarl/p/9456824.html
Copyright © 2020-2023  润新知