• 有关接口和请求头的解析


    问题一:什么是接口

      在python中一般指的接口都是api url

           但是真正的,所有语言包括java,接口就有两种定义

                             一:一个URL,进行系统之间操作处理

                             二:面向对象 接口 , 用来做约束 实现(继承)了接口中,必须编写接口中定义的方法

    如果面试题中问到有没有用到什么接口

        回答: url

    java中的写法

     1 class Base():
     2     def f2(self):
     3         pass
     4 class A():
     5     def f1(self):
     6         pass
     7 
     8 class Bar():
     9     def f1(self):
    10         pass
    11 
    12 def  func(arg):
    13     arg.f1()
    14 
    15 obj = A()
    16 func(obj)
    17 
    18 
    19 
    20 注释
    21 
    22 这个obj可以是A的对象,也可以是Bar的对象,
    23 但是不能是base的对象,因为base里面没有f1
    24 
    25 python中没有这种类型,所以一般只能自己去造
    26 
    31 所有继承接口的类都需要有接口的所有方法
    32 这个就是用来约束他里面必须实现这个方法

    在python中的写法

     1 class Base(object):
     2     def send(self):
     3         raise  NotImplementedError("请实现send方法")
     4 
     5 class Email(Base):
     6     def send(self):
     7         print("发送邮件")
     8 
     9 
    10 def send_notify(obj):
    11    obj.send()
    12 
    13 obj = Email()
    14 send_notify(obj)
    15 
    16 在python中想要实现类似于java中的接口,就用抛出异常+类继承的方法去做

    问题二:别人提交了一个数据过来,自己在request.post中找不到拿不到值是什么情况

         首先保证对方发的一定post请求,

         其次就应该想到和请求头有关系

        请求头和请求体的区别

        请求体是真正的数据,请求头中放的是对请求体加以描述的东西,当请求体和请求头发过来的时候,django会先去看他的contentType,

    根据请求头的不同回去请求体做出不同的处理,

    请求发来的数据:

         基于Django的

         基于django rest-formework

      django rest-formework是在django的基础上多加了一些功能

      如果发现request.post中没有值得时候,可能是请求头发错,也可能是数据格式发生错误

    rest-fromework有一个解析器,那么解析器是用来干什么呢???

          答:解析请求体里面的数据

  • 相关阅读:
    使用pipenv管理虚拟环境
    使用cookiecutter创建django项目
    Django中ModelViewSet的应用
    Redis添加历史浏览记录
    Django中配置用Redis做缓存和session
    点击即复制
    PostGreSQL数据库安装配置说明
    IntelliJ IDEA 2017.1.4 x64配置说明
    Struts2之2.5.10.1HelloWorld
    Apache Shiro系列(1)
  • 原文地址:https://www.cnblogs.com/1996-11-01-614lb/p/8876984.html
Copyright © 2020-2023  润新知