Flask - RESTful #
一、安装与配置 #
1.1 安装 #
bash
pip install flask-restful
1.2 初始化 #
python
from flask import Flask
from flask_restful import Api
app = Flask(__name__)
api = Api(app)
二、定义资源 #
2.1 资源类 #
python
from flask_restful import Resource
class UserResource(Resource):
def get(self, user_id):
user = User.query.get_or_404(user_id)
return {'id': user.id, 'username': user.username}
def put(self, user_id):
user = User.query.get_or_404(user_id)
data = request.get_json()
user.username = data['username']
db.session.commit()
return {'id': user.id, 'username': user.username}
def delete(self, user_id):
user = User.query.get_or_404(user_id)
db.session.delete(user)
db.session.commit()
return '', 204
api.add_resource(UserResource, '/api/users/<int:user_id>')
2.2 资源列表 #
python
class UserListResource(Resource):
def get(self):
users = User.query.all()
return [{'id': u.id, 'username': u.username} for u in users]
def post(self):
data = request.get_json()
user = User(username=data['username'])
db.session.add(user)
db.session.commit()
return {'id': user.id, 'username': user.username}, 201
api.add_resource(UserListResource, '/api/users')
三、请求解析 #
3.1 RequestParser #
python
from flask_restful import reqparse
parser = reqparse.RequestParser()
parser.add_argument('username', type=str, required=True, help='用户名必填')
parser.add_argument('email', type=str, required=True, help='邮箱必填')
class UserResource(Resource):
def post(self):
args = parser.parse_args()
user = User(username=args['username'], email=args['email'])
db.session.add(user)
db.session.commit()
return {'id': user.id}, 201
四、下一步 #
接下来让我们学习 API认证,了解API安全!
最后更新:2026-03-28