第一篇
参考这篇文章10分钟,带你用Python构建RESTful API 服务
from flask import Flask, request
from flask_restful import Api, Resource
app = Flask(__name__)
api = Api(app)
datas = [{'id': 1, 'name': 'xag', 'age': 18}, {'id': 2, 'name': 'xingag', 'age': 19}]
@app.route('/')
def hello_world():
return 'Hello World!'
class UserView(Resource):
def get(self):
return {'code': 200, 'msg': 'success', 'data': datas}
def post(self):
json_data = request.get_json()
new_id = len(datas) + 1
datas.append({'id': new_id, **json_data})
return {'code': 200, 'msg': 'ok', 'success': datas[new_id - 1]}
api.add_resource(UserView, '/user')
if __name__ == '__main__':
app.run()
第二篇
参考这篇文章python3封装Api接口
一、封装成无参数传入的接口
from flask import Flask, jsonify
def get_sample_data():
"""
定义一个获取示例数据的函数
"""
data = {
'huhy': {'age': 24, 'sex': '女'},
'liuer': {'age': 12, 'sex': '男'}
}
return data
app = Flask(__name__)
@app.route('/get_user', methods=['POST'])
def get_user():
"""
处理获取用户信息的接口
"""
data = get_sample_data()
return jsonify(data)
if __name__ == '__main__':
app.run()
二、有参数传入的接口
1.通过key_value方式传参
from flask import Flask, jsonify, request
data = {'huhy': {'age': 24, 'sex': '女'},
'liuer': {'age': 12, 'sex': '男'}}
app = Flask(__name__)
@app.route('/get_user', methods=['POST'])
def get_user():
username = request.form.get('username')
if username in data:
return jsonify(data[username])
else:
return jsonify({'error': 'User not found'})
if __name__ == '__main__':
app.run()
2.通过json串方式传参
from flask import Flask, jsonify, request
data = {'huhy': {'age': 24, 'sex': '女'},
'liuer': {'age': 12, 'sex': '男'}}
app = Flask(__name__)
@app.route('/get_user', methods=['POST'])
def get_ss():
username = request.json.get('username1')
return jsonify(data.get(username, {'error': 'User not found'}))
if __name__ == '__main__':
app.run()
3.请求链接直接拼接入参方式
from flask import Flask, jsonify, request
data = {'huhy': {'age': 24, 'sex': '女'},
'liuer': {'age': 12, 'sex': '男'}}
app = Flask(__name__)
@app.route('/get_user', methods=['POST'])
def get_ss():
username = request.args.get('username')
return jsonify(data.get(username, {'error': 'User not found'}))
if __name__ == '__main__':
app.run()