📌  相关文章
📜  如何在 django rest 框架中创建用于获取数据的 api - Python (1)

📅  最后修改于: 2023-12-03 15:08:36.096000             🧑  作者: Mango

如何在 Django Rest 框架中创建用于获取数据的 API

简介

Django Rest 框架是一个基于 Django 的开发 Web API 的框架,它提供了一个强大的工具集,用于快速构建和部署 Web API。在本文中,我们将学习如何使用 Django Rest 框架创建用于获取数据的 API。

环境
  • Python 3.x
  • Django 2.x
  • Django Rest Framework 3.x
步骤
1. 安装 Django Rest Framework

使用 pip 安装 Django Rest Framework:

pip install djangorestframework
2. 创建 Django 项目

使用 Django 创建项目:

django-admin startproject myproject

创建一个应用程序:

python manage.py startapp myapp
3. 添加 Django Rest Framework 到 INSTALLED_APPS

在项目的 settings.py 文件中添加以下代码:

INSTALLED_APPS = [
    # other apps 
    'rest_framework',
    'myapp'
]
4. 创建模型

我们将使用 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
5. 创建序列化器

我们需要为我们的模型创建序列化器来转换数据。

在 myapp 目录中创建一个名为 serializers.py 的文件,并添加以下代码:

from rest_framework import serializers
from myapp.models import Profile

class ProfileSerializer(serializers.ModelSerializer):
    class Meta:
        model = Profile
        fields = '__all__'
6. 创建视图

现在我们已经准备好了创建 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
7. 添加路由

我们需要将上面的视图映射到 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)),
]
8. 运行服务器

现在我们准备好了启动服务器,可以测试我们的 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!
参考