python的flask实现接口_使用python的Flask实现一个接口mock数据(傻瓜教程)
本教程使用的是python3 因為python2官方已經(jīng)不維護(hù)了,當(dāng)然在編寫過程中沒什么區(qū)別,安裝就比較簡單了只要電腦有pip執(zhí)行pip3 install flask即可
一般的接口包括增刪改查以及查看列表五個接口
接下來就模擬這五個簡單的接口:
使用POST/GET請求新建一個資源
fromflask import Flask, jsonify, request, abort, make_response
app=Flask(__name__)
@app.route('/api/tasks/', methods=['GET', 'POST'])
def create_task():if request.method == "GET":return make_response(jsonify(data), 200)
name= request.json['name']if name innames:return make_response(task_exist, 400)else:
names.append(name)
data.append(request.json)return make_response(request.json, 201)if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080, debug=True)
如上述代碼,在main函數(shù)里可以通過app.run指定部分參數(shù),host和port不做贅述,debug模式如果開啟則在修改后可以自動重啟服務(wù)。非常好用
知識點(diǎn):
1. jsonify:將我們傳入的json形式數(shù)據(jù)序列化成為json字符串,作為響應(yīng)的body,并且設(shè)置響應(yīng)的Content-Type為application/json,構(gòu)造出響應(yīng)返回至客戶端
2. request可以通過request.json取到接受到數(shù)據(jù)
3. abort用于返回通用的錯誤比如:404,400,500
4.make_response自定義返回的object,因為一般接口都會返回一個數(shù)據(jù)和狀態(tài)碼,所以結(jié)構(gòu)為make_response(request.json, 201)
5.路由匹配的規(guī)則
1. :默認(rèn)接受的類型是str
2. :指定id的類型為str
3. :指定的id類型是整性
4. : 指定id的類型為浮點(diǎn)數(shù)(四舍五入,且不能接收整數(shù)類型)
5. : 指定接收的path為url中的路徑
2. 使用GET請求獲取列表
from flask importFlask, jsonify, request, abort, make_response
app= Flask(__name__)
data=[
{"name": "test1", "desc": "test1", "id": 1},
{"name": "test2", "desc": "test2", "id": 2},
{"name": "test3", "desc": "test3", "id": 3},
]
task_does_not_exist= {"msg": "task does not exist"}
names= ['test1', 'test2', "test3"]
task_exist= {"msg": "name is exist"}
@app.route('/api/tasks/')defget_task(name):if len(name) > 0 and name innames:for content indata:if name == content['name']:return make_response(jsonify(content), 200)else:return make_response(jsonify(task_does_not_exist), 404)if __name__ == '__main__':
app.run(host='127.0.0.1', port=80, debug=True)
3. 使用PUT方法更新資源
@app.route('/api/tasks/', methods=['PUT'])defupdate_task(name):if len(name) > 0 and name innames:for content indata:if name == content['name']:
id= content["id"]
data[id- 1] =request.jsonreturn make_response(jsonify(data[id - 1]), 204)else:
abort(404)
4. 使用DELETE刪除資源
@app.route('/api/tasks/', methods=['DELETE'])defdelete_task(name):if len(name) > 0 and name in names:return make_response(jsonify(data), 204)else:
abort(404)
總結(jié)
以上是生活随笔為你收集整理的python的flask实现接口_使用python的Flask实现一个接口mock数据(傻瓜教程)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: layui停止更新_layui 关闭当前
- 下一篇: 微信伤感网名女两个字