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