zoukankan      html  css  js  c++  java
  • 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请求】

      

  • 相关阅读:
    种类并查集——带权并查集——POJ1182;HDU3038
    【并查集之判断连通无环图】
    jmeter响应断言通过,结果树中却显示红色
    jmeter获取登录token
    jmeter查看结果树中响应数据Unicode转换成中文
    jmeter分布式测试
    jmeter连接mysql测试
    jmeter集合点
    jmeter之参数化
    jmeter之断言(3种)
  • 原文地址:https://www.cnblogs.com/NGU-PX/p/14206493.html
Copyright © 2011-2022 走看看