• Django CBV使用


    CBV(class base views) 就是在视图里使用类处理请求。

    Python是一个面向对象的编程语言,如果只用函数来开发,有很多面向对象的优点就错失了(继承、封装、多态)。所以Django在后来加入了Class-Based-View。可以让我们用类写View。这样做的优点主要下面两种:

    1. 提高了代码的复用性,可以使用面向对象的技术,比如Mixin(多继承)
    2. 可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高代码可读性

    1、配置URL路由

    from django.contrib import admin
    from django.urls import path
    from app1.views import LoginViews
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('login/', LoginViews.as_view())
    ]
    

    2. 配置views视图

    from django.shortcuts import render,HttpResponse
    from django.views import View
    
    
    # Create your views here.
    # 要求:必须继承View类 -> 系统才认可当前为视图类,可以和路由捆绑;
    class LoginViews(View):
    	"""
    	# cbv
    		1.方法名不能乱写 只能如下请求方法['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']
    		2.如果自定义dispatch , 最后落脚在父类的dispatch返回值中,前面可以自己加一些功能扩展
    	"""
    
    	def dispatch(self, request, *args, **kwargs):
    		print("自定义dispatch方法,可以在这个环节写更多的代码逻辑... 扩展小功能")
    		return super().dispatch(request, *args, **kwargs)
    
    	def get(self,request):
    		print("get请求方法被调用")
    		return HttpResponse("GET 请求")
    
    	def post(self,request):
    		print("post请求方法被调用")
    		return HttpResponse("POST 请求")
    
    	def put(self,request):
    		print("put请求方法被调用")
    		return HttpResponse("put 请求")
    
    	def patch(self,request):
    		print("patch请求方法被调用")
    		return HttpResponse("patch 请求")
    
    	def delete(self,request):
    		print("delete请求方法被调用")
    		return HttpResponse("delete 请求")
    

    3. 临时关闭csrf

      【settings.py配置】

    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        # 'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]
    

      

    4.  postman模拟请求

      【Get请求】

        

         

      【POST请求】

      

  • 相关阅读:
    字符串混淆技术应用 设计一个字符串混淆程序 可混淆.NET程序集中的字符串
    运用Mono.Ceci类库修改.NET程序集 走上破解软件的道路
    字符串反混淆实战 Dotfuscator 4.9 字符串加密技术应对策略
    数学:《初等书论》素数与合数
    数学:《线性代数》矩阵乘积 之 代码实现
    数学:《线性代数》方阵求逆 之 代码实现
    数学:《线性代数》矩阵运算
    数学:《线性代数》矩阵初等行变换及其应用(线性方程求解)
    数学:《概率》条件概率公式
    Entityframework:启用延时加载的主意事项(只为强化记忆)
  • 原文地址:https://www.cnblogs.com/NGU-PX/p/14206493.html
Copyright © 2020-2023  润新知