📅  最后修改于: 2023-12-03 15:08:36.096000             🧑  作者: Mango
Django Rest 框架是一个基于 Django 的开发 Web API 的框架,它提供了一个强大的工具集,用于快速构建和部署 Web API。在本文中,我们将学习如何使用 Django Rest 框架创建用于获取数据的 API。
使用 pip 安装 Django Rest Framework:
pip install djangorestframework
使用 Django 创建项目:
django-admin startproject myproject
创建一个应用程序:
python manage.py startapp myapp
在项目的 settings.py 文件中添加以下代码:
INSTALLED_APPS = [
# other apps
'rest_framework',
'myapp'
]
我们将使用 Django 自带的 User 模型来演示如何创建 API。在 myapp 目录下创建一个名为 models.py 的文件并添加以下代码:
from django.db import models
from django.contrib.auth.models import User
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
bio = models.CharField(max_length=200)
location = models.CharField(max_length=200)
birth_date = models.DateField(null=True, blank=True)
将 myapp 添加到 INSTALLED_APPS 后,我们需要运行迁移以创建数据库表:
python manage.py makemigrations
python manage.py migrate
我们需要为我们的模型创建序列化器来转换数据。
在 myapp 目录中创建一个名为 serializers.py 的文件,并添加以下代码:
from rest_framework import serializers
from myapp.models import Profile
class ProfileSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields = '__all__'
现在我们已经准备好了创建 API 视图。
在 myapp 目录中创建一个名为 views.py 的文件,并添加以下代码:
from rest_framework import viewsets
from myapp.serializers import ProfileSerializer
from myapp.models import Profile
class ProfileViewSet(viewsets.ModelViewSet):
queryset = Profile.objects.all()
serializer_class = ProfileSerializer
我们需要将上面的视图映射到 URL。打开项目的 urls.py 文件并添加以下代码:
from django.urls import include, path
from rest_framework import routers
from myapp import views
# 创建路由器并注册我们的视图
router = routers.DefaultRouter()
router.register(r'profiles', views.ProfileViewSet)
# 配置我们的 URL 然后包含 router.urls
urlpatterns = [
path('', include(router.urls)),
]
现在我们准备好了启动服务器,可以测试我们的 API。使用以下命令启动服务器:
python manage.py runserver
现在我们可以测试 API,访问以下 URL:
http://localhost:8000/profiles/
在本文中,我们学习了如何使用 Django Rest 框架创建用于获取数据的 API。我们使用了 Django Rest Framework 提供的视图,序列化器和路由器来快速构建我们的 API。现在你可以使用此方法创建 API,用于在你的应用程序中获取数据。
本文也发布在我的博客园:如何在 Django Rest 框架中创建用于获取数据的 API - Python。
print("Hello Django Rest Framework!")
运行结果:
Hello Django Rest Framework!