1、開發接口的做用python
1.在別的接口沒有完成的時候能夠模擬一些接口以便測試已經開發完成的接口,例如假的支付接口模擬支付成功、支付失敗mysql
2.瞭解接口是如何實現的,數據交互,數據返回sql
3.開發給別人看數據,避免其餘人直接操做數據庫數據庫
2、接口開發的步驟json
1.實例化serverflask
2.裝飾器下面的函數變爲一個接口瀏覽器
33.啓動服務app
3、開發一個簡單的接口函數
首先要引入flask這個模塊,沒安裝須要安裝(pip install flask)post
寫一個簡單的註冊接口
1 import flask,json 2 server = flask.Flask(__name__) # 實例化server,把當前這個python文件看成一個服務,__name__表明當前這個python文件 3 @server.route('/index',methods=['get']) # 'index'是接口路徑,methods不寫,則默認get請求 4 # 裝飾器,下面的函數變爲一個接口 5 def index(): 6 res = {'msg':'這是我開發的第一個接口','msg_code':'0000'} 7 return json.dumps(res,ensure_ascii=False) 8 # json.dumps 序列化時對中文默認使用的ascii編碼.想輸出真正的中文須要指定ensure_ascii=False 9 10 server.run(port=8888,debug=True,host='0.0.0.0') # 啓動服務 11 # debug=True,改了代碼後,不用重啓,它會自動重啓 12 # 'host='0.0.0.0'別人能夠經過IP訪問
在瀏覽器裏訪問上述代碼,獲得以下結果
4、開發一個登陸接口
1 import flask,json 2 from lib.tools import mysql#引入提早寫好的模塊,操做數據庫 4 server = flask.Flask(__name__)# 啓動服務,把當前的Python文件當作一個服務 5 @server.route('/dalu',methods=['get','post'])# /dalu是接口路徑,methods不寫,默認是get請求 6 # 裝飾器,下面的函數變爲一個接口 7 def login(): 8 username = flask.request.values.get("username")# 接口入參爲 username 9 passwd = flask.request.values.get("password") 10 if username and passwd: 11 sql = "select username,passwd from app_student " \ 12 "where username =%s,password =%s"%(username,passwd) 13 if mysql(sql): 14 res = {"msg_code":2001,"msg":"用戶已存在"} 15 else: 16 insert_sql = "insert into app_student(username,passwd) " \ 17 "values ('%s','%s');"%(username,passwd) 18 mysql(insert_sql) 19 res = {"msg_code":2000,"msg":"註冊成功"} 20 else: 21 res = {"msg_code": 2002, "msg": "必填參數未填,請查看接口文檔"} 22 23 return json.dumps(res,ensure_ascii=False)# 返回執行結果 24 25 server.run(host = '0.0.0.0',port = 8888,debug = True) 26 # 啓動服務,debug=Ture改了代碼後不用重啓,他會自動重啓 27 # host = '0.0.0.0',別人能夠經過IP訪問,限同一局域網內
一個接口文件中能夠包含多個接口,只要接口路徑不一致便可。可是server.run()必定要放到全部接口最底下,不然,在server.run()下面的接口是不會被運行的。
另外,若是想要在別的環境裏運行咱們的接口,則須要將接口所在的路徑添加至環境變量,具體代碼實現以下:
1 import os,sys 2 res = os.path.abspath(__file__)# 取當前文件的絕對路徑 3 base_path = os.path.dirname(os.path.dirname(res))# 獲取父目錄 4 sys.path.append(base_path)#將接口所在的父目錄添加至環境變量
未完待補充。。