1. 程式人生 > 實用技巧 >利用flask mock介面

利用flask mock介面

安裝 flask:

  pip install flask

簡單請求demo

後端接收指令碼

# 利用flask 編寫一個簡單的介面
from flask import Flask

# 匯入 request 處理請求 requests是用於傳送請求的
from flask import request


# 例項化一個web服務物件
app = Flask(__name__)


# 建立一個方法來處理請求 不指定請求方法的時候 預設接收get請求
# 定義一個路由 -- 訪問服務的根目錄就可以得到結果
@app.route('/')
def hello():

return '<h1>hello flask</h1>'



@app.route('/post',methods=['POST'])
def test_post():

# 提示資料 鍵值對格式
d1 = request.form['d1']
d2 = request.form['d2']
return d1 + d2


if __name__ == '__main__':

# 執行並確定服務執行的ip和埠
app.run('127.0.0.1','9090')

請求指令碼

# 理由requests傳送請求給服務端
import requests

# 定義post 傳送資料
body = {
'd1': 'hello,',
'd2': 'flask'
}

# 傳送post請求 加入請求體
res = requests.post('http://127.0.0.1:9090/post',data=body)

print(res.text)

Demo

請求指令碼

import requests


body = {
"out_trade_no": "20150320010101001",
"auth_code": "287634438256643941",
"buyer_id": "2088202954065786",
"seller_id": "2088102146225135",
"subject": "Iphone6 16G",
"total_amount": "88.88,"
}

# 請求頭 鍵:Content-Type 值:application/json
# 請求頭因為是json 格式 所以就不需要指定請求頭 直接json賦值

# 請求路徑:
res = requests.post('http://127.0.0.1:9090/trade/purchase', json=body)

# 列印響應 如果響應是json格式的話需要轉化一下
print(res.json())

後端接收指令碼

# 利用flask 編寫一個簡單的介面
from flask import Flask

# 匯入 request 處理請求 requests是用於傳送請求的
from flask import request
import json
import time
import random

# 例項化一個web服務物件
app = Flask(__name__)


# 處理極簡交易介面
@app.route('/trade/purchase',methods=['POST'])
def purchase():

# 拿到客戶端返回的資料
# 獲取json格式 request.get_data():返回的是二進位制格式 所以需要 json 來轉化一下
res = json.loads(request.get_data())

# 提取資料
out_trade_no = res['out_trade_no']

# 獲取授權碼
auth_code = res['auth_code']


data = {
'ceod': '400004',
'msg': 'business failed',
'sub_code': 'ACQ.TRADE_HAS_SUCCESS',
'sub_msg': '交易已被支付',
'trade_no': '306006251561561878976518897120',
'out_trade_no': '333150320010101001'
}
# 把out_trade_no 改成客戶端傳送過來的資料
# 自動把我們的響應修改成客戶端傳送過來的訂單號 有的時候訂單號是動態生成的
data['out_trade_no'] = out_trade_no

# 生成訂單時間
data['trade_no'] = time.strftime('%Y%m%d%H%M%S')+str(random.random()).replace('.0','')

# 驗證請求碼
if auth_code != '287634438256643941':
return {'code': '500', 'msg': '請求碼驗證失敗'}

return data



if __name__ == '__main__':

# 執行並確定服務執行的ip和埠
app.run('127.0.0.1','9090')