注:本篇的代碼和語法基于Python3.5環(huán)境,下面將用到Python 的Flask框架
封裝接口主要講靜態(tài)接口(無參數(shù)傳入)、動態(tài)接口(有參數(shù)傳入,不同參數(shù)返回的信息不同)。針對動態(tài)接口有三種傳參方式:key_value、json串和拼接方式入?yún)?/p>
- 一、封裝成無參數(shù)傳入的接口
from flask import Flask,jsonify,request
data = {'huhy':{'age':24,'sex':'女'},
'liuer':{'age':12,'sex':'男'}
}
app = Flask(__name__)#創(chuàng)建一個服務(wù),賦值給APP
@app.route('/get_user',methods=['post'])#指定接口訪問的路徑,支持什么請求方式get,post
#講的是封裝成一種靜態(tài)的接口,無任何參數(shù)傳入
def get_user():#-----這里的函數(shù)名稱可以任意取
return jsonify(data)#把字典轉(zhuǎn)成json串返回
app.run(host='0.0.0.0',port=8802,debug=True)
#這個host:windows就一個網(wǎng)卡,可以不寫,而liux有多個網(wǎng)卡,寫成0:0:0可以接受任意網(wǎng)卡信息,
通過訪問127.0.0.1:8802/get_user,可返回data信息
#debug:調(diào)試的時候,可以指定debug=true;如果是提供接口給他人使用的時候,debug要去掉
接口返回的截圖如下:

- 二、有參數(shù)傳入的接口
1.通過key_value方式傳參
from flask import Flask,jsonify,request
data = {'huhy':{'age':24,'sex':'女'},
'liuer':{'age':12,'sex':'男'}
}
err = {'zz':404,
'yy':502
}
app = Flask(__name__)#創(chuàng)建一個服務(wù),賦值給APP
@app.route('/get_user',methods=['post'])#指定接口訪問的路徑,支持什么請求方式get,post
# key_values方式傳參
def get_user():
username = request.form.get('username')#獲取接口請求中form-data的username參數(shù)傳入的值
if username in data:#判斷請求傳入的參數(shù)是否在字典里
return jsonify(data[username])
#如果在的話,則返回data對應(yīng)key的值轉(zhuǎn)成的json串信息
else:
return jsonify(err[username])
#如果不在的話,返回err對應(yīng)key的value轉(zhuǎn)成的json串信息
app.run(host='0.0.0.0',port=8802,debug=True)
#這個host:windows就一個網(wǎng)卡,可以不寫,而liux有多個網(wǎng)卡,寫成0:0:0可以接受任意網(wǎng)卡信息
#通過訪問127.0.0.1:8802/get_user,form—data里輸入username參數(shù),則可看到返回信息
接口返回的截圖如下:

2.通過json串方式傳參
from flask import Flask,jsonify,request
data = {'huhy':{'age':24,'sex':'女'},
'liuer':{'age':12,'sex':'男'}
}
err = {'zz':404,
'yy':502
}
app = Flask(__name__)#創(chuàng)建一個服務(wù),賦值給APP
@app.route('/get_user',methods=['post'])#指定接口訪問的路徑,支持什么請求方式get,post
#json方式傳參
def get_ss():
username = request.json.get('username1')#獲取帶json串請求的username參數(shù)傳入的值
if username in data: # 判斷請求傳入的參數(shù)是否在字典里
return jsonify(data[username])
#如果在的話,則返回data對應(yīng)key的值轉(zhuǎn)成的json串信息
else:
return jsonify(err[username])
#如果不在的話,返回err對應(yīng)key的value轉(zhuǎn)成的json串信息
app.run(host='0.0.0.0',port=8802,debug=True)
#這個host:windows就一個網(wǎng)卡,可以不寫,而liux有多個網(wǎng)卡,寫成0:0:0可以接受任意網(wǎng)卡信息
#通過訪問127.0.0.1:8802/get_user,form—data里輸入username參數(shù),則可看到返回信息
接口返回的截圖如下:

3.請求鏈接直接拼接入?yún)⒎绞?br>
from flask import Flask,jsonify,request
data = {'huhy':{'age':24,'sex':'女'},
'liuer':{'age':12,'sex':'男'}
}
err = {'zz':404,
'yy':502
}
app = Flask(__name__)#創(chuàng)建一個服務(wù),賦值給APP
@app.route('/get_user',methods=['post'])#指定接口訪問的路徑,支持什么請求方式get,post
#請求后直接拼接入?yún)⒎绞?def get_ss():
username = request.args.get('username')#使用request.args.get方式獲取拼接的入?yún)?shù)據(jù)
if username in data: # 判斷請求傳入的參數(shù)是否在字典里
return jsonify(data[username])
#如果在的話,則返回data對應(yīng)key的值轉(zhuǎn)成的json串信息
else:
return jsonify(err[username])
#如果不在的話,返回err對應(yīng)key的value轉(zhuǎn)成的json串信息
app.run(host='0.0.0.0',port=8802,debug=True)
#這個host:windows就一個網(wǎng)卡,可以不寫,而liux有多個網(wǎng)卡,寫成0:0:0可以接受任意網(wǎng)卡信息
#通過訪問127.0.0.1:8802/get_user,form—data里輸入username參數(shù),則可看到返回信息
接口返回的截圖,如下:

4.request.values.get()獲取請求參數(shù)的方法,不僅支持獲取連接拼接的參數(shù),而且還能獲取body form填入的參數(shù)
- 未完待續(xù)
|