• Django 之 rest_framework 响应器使用


    Django 之 rest_framework 响应器使用

    使用部分:

    • 第一步:导入模块

      from rest_framework.renders import 	BrowsableAPIRenderer,JSONRenderer,TemplateHTMLRenderer,StaticHTMLRenderer,HTMLFormRenderer
      
      # JSONRenderer  # JSON数据样式响应--->常用
      # BrowsableAPIRenderer  # 浏览器接口响应--->常用
      # TemplateHTMLRenderer  # 静态HTML响应
      # StaticHTMLRenderer  # 标准 HTML 响应
      # HTMLFormRenderer  # HTML 表单响应
      
    • 第二步: 配置响应器

      • 局部配置(在视图类中 配置)

        from rest_framework.parsers import JSONParser, FormParser, MultiPartParser, FileUploadParser
        from rest_framework.renderers import JSONRenderer, BrowsableAPIRenderer
        
        
        class BooksView(ModelViewSet):
            # 局部使用 版本控制  URLPathVersioning
            # versioning_class = URLPathVersioning
            
            # 局部 解析器配置
            parser_classes = [JSONParser, ]
            
            # 局部配置 响应器
            renderer_classes = [JSONRenderer, BrowsableAPIRenderer]
            
            # 获取 queryset对象
            queryset = models.Book.objects.all()
            
            # 获取 序列化类
            serializer_class = myser.BookSerializer
            
            def list(self, request, *args, **kwargs):
                print(1)
                print(request.version)
                print(request.__dict__)
                
                return super().list(request, *args, **kwargs)
        
      • 全局配置(一般都是全局配置即可)

        REST_FRAMEWORK = {
            
            # 配置全局版本控制
            'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.URLPathVersioning',
            'DEFAULT_VERSION': 'v1',  # 默认版本(从request对象里取不到,显示的默认值)
            'ALLOWED_VERSIONS': ['v1', 'v2'],  # 允许的版本
            'VERSION_PARAM': 'version',  # URL中获取值的key
            
            # 配置全局解释器
            'DEFAULT_PARSER_CLASSES': [
                'rest_framework.parsers.JSONParser',
                'rest_framework.parsers.FormParser',
                'rest_framework.parsers.MultiPartParser',
            ],
            # 配置全局响应器
            'DEFAULT_RENDERER_CLASSES': ['rest_framework.renderers.JSONRenderer']
            
        }
        
  • 相关阅读:
    利用ssh的私钥登录Linux server
    PSR-2 代码风格规范
    MySQL的四种事务隔离级别
    table添加横向滚动条
    转换图片大小
    百度地图Label 样式:label.setStyle
    鼠标的几种常用样式
    百度地图API-自定义图标覆盖物
    微信公众号自定义菜单中可加入的表情
    微信公众号项目总结
  • 原文地址:https://www.cnblogs.com/qianzhengkai/p/11144414.html
Copyright © 2020-2023  润新知