問題一:什么是接口
在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有一個解析器,那么解析器是用來干什么呢???
答:解析請求體里面的數據