有关接口和请求头的解析

问题一:什么是接口

  在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有一个解析器,那么解析器是用来干什么呢???

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

 

posted @ 2018-04-18 19:06  兰博~~  阅读(3332)  评论(0编辑  收藏  举报