flask_restful_banner.png
本文約550字瑞驱,將耗費您約4??分鐘~
所有的操作递瑰,僅在
mac
系統(tǒng)上實操過
前期準(zhǔn)備
創(chuàng)建一個虛擬環(huán)境:
$ mkdir flask_restful
$ cd flask_restful
$ python3 -m venv venv
激活虛擬環(huán)境:
$ . venv/bin/activate
虛擬環(huán)境退出:
$ deactivate
安裝flask
和flask_restful
:
$ pip install flask
$ pip install flask_restful
項目接口模擬
在項目的根目錄下面新建文件api.py
,在此文件中進(jìn)行數(shù)據(jù)的增刪改查蟆炊。
?? 這里使用到的數(shù)據(jù)為模擬數(shù)據(jù),并未連接數(shù)據(jù)庫
from flask import Flask, jsonify, request
from flask_restful import Api, Resource
app = Flask(__name__)
api = Api(app)
USER_LIST = [{'id': 1, 'name': 'jimmy'}]
class UserListApi(Resource):
def get(self):
return {'code': 10000, 'msg': 'get list success', 'data': USER_LIST}
def post(self):
json_data = request.get_json()
new_id = len(USER_LIST) + 1
USER_LIST.append({'id': new_id, 'name': json_data.get('name')})
return jsonify({'code': 10000, 'msg': 'add user success', 'data': USER_LIST[new_id-1]})
class UserApi(Resource):
def get(self, id):
return {'code': 10000, 'msg': 'get user success', 'data': {}}
def put(self, id):
return {'code': 10000, 'msg': 'update user success', 'data': {}}
def delete(self, id):
return {'code': 10000, 'msg': 'remove user success', 'data': {}}
api.add_resource(UserListApi, '/users')
api.add_resource(UserApi, '/users/<int:id>')
if __name__ == '__main__':
app.run(debug=True)
之后運行應(yīng)用:
$ export FLASK_APP=api.py
$ export FLASK_ENV=development
$ flask run
看到下面的輸出,說明運行成功了:
* Serving Flask app "flaskr" (lazy loading)
* Environment: development
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 577-682-777
項目接口驗證
在上面的代碼中旋膳,我們對users
進(jìn)行了相關(guān)的增刪改查,下面我們來驗證下:
- 新增一個用戶
$ curl http://127.0.0.1:5000/users -X POST -H "Content-Type:application/json" -d '{"name": "tom"}'
{
"code": 10000,
"data": {
"id": 2,
"name": "tom"
},
"msg": "add user success"
}
- 查詢整個用戶列表
$ curl http://127.0.0.1:5000/users
{
"code": 10000,
"msg": "get list success",
"data": [
{
"id": 1,
"name": "jimmy"
},
{
"id": 2,
"name": "tom"
}
]
}
- 更新一個用戶
$ curl http://127.0.0.1:5000/users/1 -X PUT
{
"code": 10000,
"msg": "update user success",
"data": {}
}
- 獲取一個用戶
$ curl http://127.0.0.1:5000/users/1
{
"code": 10000,
"msg": "get user success",
"data": {}
}
- 刪除一個用戶
$ curl http://127.0.0.1:5000/users/1 -X DELETE
{
"code": 10000,
"msg": "remove user success",
"data": {}
}