有关接口和请求头的解析
问题一:什么是接口
在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有一个解析器,那么解析器是用来干什么呢???
答:解析请求体里面的数据