目標:
使用Python實現一個簡單的接口服務,可以通過get、post方法請求該接口,拿到響應數據。創建一個api_server.py文件,
想要實現的效果是這樣的:
添加代碼如下:
1 import flask,json 2 from flask import request 3
4 '''
5 flask: seb框架,通過flask提供的裝飾器@server.route()將普通函數轉換為服務 6 登錄接口,需要傳入url,username,passwd 7 '''
8
9 #創建一個服務,把當前這個python文件當做一個服務
10 server = flask.Flask(__name__) 11
12 #server.route()可以將普通函數轉變為服務 登錄接口的路徑、請求方式
13 @server.route('/login',methods=['get','post']) 14 def login(): 15 #獲取通過url請求傳參的數據
16 username = request.values.get('name') 17 #獲取url請求傳的密碼,明文
18 pwd=request.values.get('pwd') 19 #判斷用戶名、密碼都不為空,如果不傳用戶名、密碼則username和pwd為None
20 if username and pwd: 21 if username == 'xiaoming' and pwd == '111': 22 resu={'code':200,'message':'登錄成功'} 23 return json.dumps(resu,ensure_ascii=False)#將字典轉換為Json串,json是字符串
24 else: 25 resu={'code':-1,'message':'賬號密碼錯誤'} 26 return json.dumps(resu,ensure_ascii=False) 27
28 else: 29 resu={'code':1001,'message':'參數不能為空'} 30 return json.dumps(resu,ensure_ascii=False) 31
32 if __name__== '__main__': 33 server.run(debug=True,port = 8888,host='0.0.0.0')#指定端口,host,0.0.0.0代表不管幾個網卡,任何ip都可訪問
執行以上代碼,測試一下效果:
1.正確的用戶名,錯誤的密碼
在瀏覽器中輸入http://127.0.0.1:8888/login?name=xiaoming&pwd=111111
2.正確的用戶名 正確的密碼
http://127.0.0.1:8888/login?name=xiaoming&pwd=111
3.密碼為空
http://127.0.0.1:8888/login?name=xiaoming
參照下面3文(使用了第1篇文章作者的思路,以最低的學習成本實現了我想要的目標,通過 一個http地址 ,請求到相應的json數據 )
使用Python實現一個簡單的接口服務(利用flask)
https://blog.csdn.net/songlh1234/article/details/83381642
用Python 的Flask實現 RESTful API(學習篇)(極好!最復合我完整的需求,小例子深入淺出,簡顯易懂)
https://www.jianshu.com/p/33160c224732
Python實現簡單的API接口
https://blog.csdn.net/u013040887/article/details/78895323/