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