开发 Python RESTful API 通常使用 Flask 或 Django 框架。下面,我将介绍如何使用 Flask 和 Django 进行 RESTful API 开发。
首先,安装 Flask 和 Flask-RESTful:
pip install flask flask-restful
创建一个基本的 Flask 应用:
from flask import Flask
from flask_restful import Api, Resource
app = Flask(__name__)
api = Api(app)
在 Flask 中,RESTful API 的每个端点都可以被定义为一个资源。你可以创建一个继承自 Resource
的类,并实现 get
, post
, put
, delete
等方法:
class HelloWorld(Resource):
def get(self):
return {'message': 'Hello, World!'}
api.add_resource(HelloWorld, '/')
运行应用:
python app.py
访问 http://127.0.0.1:5000/
,你将看到返回的 JSON 数据:
{
"message": "Hello, World!"
}
我们可以扩展 API 来处理更复杂的操作。假设我们要处理用户的数据:
from flask import request
users = []
class User(Resource):
def get(self, user_id):
user = next((user for user in users if user['id'] == user_id), None)
return {'user': user}, 200 if user else 404
def post(self):
new_user = {
'id': request.json['id'],
'name': request.json['name']
}
users.append(new_user)
return new_user, 201
def put(self, user_id):
user = next((user for user in users if user['id'] == user_id), None)
if user:
user['name'] = request.json['name']
return user, 200
return {'message': 'User not found'}, 404
def delete(self, user_id):
global users
users = [user for user in users if user['id'] != user_id]
return '', 204
api.add_resource(User, '/user', '/user/<int:user_id>')
get(self, user_id)
: 获取指定用户。post(self)
: 创建一个新用户。put(self, user_id)
: 更新指定用户信息。delete(self, user_id)
: 删除指定用户。Django 使用 Django REST framework 来开发 RESTful API。
首先,安装 Django 和 Django REST framework:
pip install django djangorestframework
创建 Django 项目:
django-admin startproject myproject
cd myproject
创建应用:
python manage.py startapp myapp
在 settings.py
中添加 rest_framework
和你的应用 myapp
到 INSTALLED_APPS
:
INSTALLED_APPS = [
...
'rest_framework',
'myapp',
]
在 myapp/models.py
中定义一个模型,例如用户模型:
from django.db import models
class User(models.Model):
name = models.CharField(max_length=100)
然后运行迁移命令以应用模型:
python manage.py makemigrations
python manage.py migrate
在 Django REST framework 中,序列化器将模型实例转换为 JSON。创建 myapp/serializers.py
文件:
from rest_framework import serializers
from .models import User
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
视图集定义了模型的视图逻辑。在 myapp/views.py
中创建视图集:
from rest_framework import viewsets
from .models import User
from .serializers import UserSerializer
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
在 myapp/urls.py
中配置路由:
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import UserViewSet
router = DefaultRouter()
router.register(r'users', UserViewSet)
urlpatterns = [
path('', include(router.urls)),
]
然后在项目的 urls.py
中包含应用的路由:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('myapp.urls')),
]
启动开发服务器:
python manage.py runserver
现在,你可以通过 http://127.0.0.1:8000/api/users/
访问用户 API,支持 GET
, POST
, PUT
, DELETE
操作。
通过以上步骤,你可以使用 Flask 或 Django REST framework 快速开发 RESTful API。Flask 适用于小型项目和快速原型开发,而 Django REST framework 适合更复杂的项目,提供了更多的内置功能和扩展性。