• drf学习


    html复习

    常用标签
    html head body
    div span
    br hr a img
    i b u h1~h6 p
    ul>li  table>(caption)thead|tbody|tfoot>tr>th|td  form>input|label|textarea|select>option
    

    css复习

    选择器:
    基础:*  div  .div   #div  !important
    群组:div,h1,a {}
    后代子代:body div | body > div
    兄弟相邻:.d1~.d2  | .d1+.d2
    交叉选择器:.d1.d2  |  div.d1  div.d1#d.d2   <div class="d1 d2"  id="d"> 
    属性选择器:[titile]
    伪类选择器::hover  :active  :focus  :blur  :change  :checked
    		  :after{content:""}  :before{content:""}
    		  :nth-child()  :nth-of-type()
    
    

    drf学习

    """
    drf:django-restframework
    drf框架的作用:写接口
    
    什么是接口: 
    	明确了请求方式,提供对应后台所需参数,请求url链接可以得到后台的响应数据
    	
    怎么写接口:
    	参照某种规则(规范)书写url链接,同时根据规则制定请求方式,请求数据与响应结果
    	
    接口文档:
    	提供给前后台开发人员与测试人员查看
    
    接口规范:
    	webapi接口规范:restful 
    """
    
    https://api.oldboy.com/v2/books/?limit=3&ordering=-price&page=2
    https://api.oldboy.com/v2/books/(pk)/
    
    # 网络状态码:200
    {
        "status": 0,
        "msg": "ok",
        "results": [
            {
                "name": "西游记",
                "img": "https://api.oldboy.com/media/img/xyj.png"
            }
        ]
    }
    

    知识点总结

    """
    1、html常用标签
    2、css选择器,css三种布局
    3、js四种变量,js字符串、数组、对象的操作方法,js可变长参数
    4、接口的四个核心部分:请求方式,请求地址,请求参数,响应结果
    5、接口工具:写接口文档的YApi平台,访问接口的Postman工具
    6、restful接口规范:如何设计url,请求方式代表操作方式,网络状态码及其含义,响应结果
    7、基于原生django书写满足restful规范的接口:两个url 对应 一个视图类 完成 十大接口
    8、CBV请求生命周期:as_view()完成路由匹配 => url请求会调用as_view()的返回值视图函数view => 调用dispatch()完成请求分发 => 视图类的具体视图方法处理请求 => 返回给前台
    
    9.
    	安装drf:pip install djangorestframework
    	视图类继承drf的APIView: from rest_framework.views import APIView
    	读懂drf的as_view()方法:返回视图函数view是,局部禁用了csrf认证 - csrf_exempt(view)
    	请求分发的dispatch(),
    		在分发执行视图方法前,完成了
    			二次封装request:self.initialize_request(request, *args, **kwargs)
    			三大认证:self.initial(request, *args, **kwargs)
    		在视图方法处理完请求后:
    			出现异常的处理:self.handle_exception(exc)
    			二次封装response:self.finalize_response(request, response, *args, **kwargs)
    			
    10、自己看drf源码入口:直接查看 rest_framework.view的APIView的dispatch方法
    """
    

    drf全局渲染与局部渲染

    • 局部设置

      • 在我们定义基础APIView的类添加renderer_classes = [JSONRenderer]这样网页就不会出现渲染只显示js数据

      例如

      class UserAPIView(APIView):
        renderer_classes = [JSONRenderer]
      
          def get(self, request, *args, **kwargs):
              print(request.query_params)
              data = {
                  'status': 0,
                  'msg': 'get ok',
                  'results': [],
                  'token': '123.12321.231'
              }
              return Response(
                  data=data,
                  status=status.HTTP_200_OK,
                  headers={'Token': '123as.masd21.asd213sd'},
                  content_type='application/json'  # 默认就是application/json
              )
      
    • 全局设置在setting

      # drf配置
      REST_FRAMEWORK = {
          # 响应的渲染模块
          'DEFAULT_RENDERER_CLASSES': [
              'rest_framework.renderers.JSONRenderer',
              'rest_framework.renderers.BrowsableAPIRenderer',
          ],
          'DEFAULT_PARSER_CLASSES': [
              'rest_framework.parsers.JSONParser',  # 'application/json'
              'rest_framework.parsers.FormParser',  # 'application/x-www-form-urlencoded'
              'rest_framework.parsers.MultiPartParser'  # multipart/form-data
          ],
      }
      
  • 相关阅读:
    Python网络编程 —— 粘包问题及解决方法
    Python网络编程 —— socket(套接字)及通信
    Python网络编程 —— 网络基础知识
    Python
    MySQL 之 数据的导出与导入
    MySQL 之 慢查询优化及慢日志管理
    MySQL 之 索引进阶
    MySQL 之 索引
    MySQL 之 事务
    MySQL 之 表的存储引擎
  • 原文地址:https://www.cnblogs.com/aden668/p/11884288.html
Copyright © 2020-2023  润新知