使用Django 中创建一个 API

首先先介绍一下DRF概念:

Django REST framework(简称DRF)是一个强大灵活的 Python 工具包,用于在 Django 中构建 Web API。它提供了一套工具和库,帮助开发人员为他们的 Django Web 应用程序创建 API。使用 Django REST framework,开发人员可以轻松地序列化/反序列化数据,处理身份验证、权限和版本控制,并创建可浏览的 API。

第一步:在您创建的 Django 项目的 settings.py 文件中,将 ‘rest_framework’ 添加到 INSTALLED_APPS 列表中:

先创建Django 项目

django-admin startproject myproject

第二步:创建一个应用程序app。

python manage.py startapp data_capture

我们将创建一个简单的模型,并为该模型创建一个 API。

from django.db import models

class WeiboHotSearch(models.Model):
    id = models.AutoField(primary_key=True)
    title = models.CharField(max_length=100)
    play = models.IntegerField()
    url = models.URLField()

    def __str__(self):
        return self.title

创建序列化器 在 myapp 目录下创建一个新文件 serializers.py 并创建一个 MessageSerializer

# 在 myapp/serializers.py 中定义序列化器
from rest_framework import serializers
from .models import WeiboHotSearch

class MyModelSerializer(serializers.ModelSerializer):
    class Meta:
        model = WeiboHotSearch
        fields = '__all__'  # 或者指定需要序列化的字段

创建视图

# 在 views.py 中定义视图
from rest_framework import viewsets
from .models import WeiboHotSearch
from .serializers import MyModelSerializer

class MyModelListCreate(viewsets.ModelViewSet):
    queryset = WeiboHotSearch.objects.all()
    serializer_class = MyModelSerializer

创建路由

# 在 urls.py 中定义 API 路由
from django.urls import path

from rest_framework.routers import SimpleRouter
from .views import MyModelListCreate

router = SimpleRouter()

router.register('messages', MyModelListCreate, basename='messages')
 
urlpatterns = router.urls

在项目的 URL 配置中包含应用程序 URL 在 my_django_project/urls.py 中,将 data_capture.urls 添加到 urlpatterns

应用数据库迁移

python manage.py makemigrations
python manage.py migrate

启动开发服务器

python manage.py runserver

现在您可以在浏览器中访问 http://127.0.0.1:8000/api/datadata_capure/messages/ 以查看您的新 API

相关推荐

  1. 如何创建 Django 应用并连接到数据库

    2024-03-21 07:54:02       38 阅读
  2. Django创建app

    2024-03-21 07:54:02       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-21 07:54:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-21 07:54:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-21 07:54:02       87 阅读
  4. Python语言-面向对象

    2024-03-21 07:54:02       96 阅读

热门阅读

  1. docker和kubectl客户端安装Linux

    2024-03-21 07:54:02       40 阅读
  2. python(Django)之退出功能实现

    2024-03-21 07:54:02       41 阅读
  3. 混合精度训练(AMP)

    2024-03-21 07:54:02       36 阅读
  4. Bert模型输出:last_hidden_state转换为pooler_output

    2024-03-21 07:54:02       38 阅读
  5. 【工具】mac 环境配置

    2024-03-21 07:54:02       46 阅读
  6. 啥是大语言模型LLM

    2024-03-21 07:54:02       44 阅读
  7. mongodb进阶聚合查询各种写法

    2024-03-21 07:54:02       42 阅读
  8. 多数据源 - dynamic-datasource | 事务支持

    2024-03-21 07:54:02       44 阅读
  9. 面试常问问题

    2024-03-21 07:54:02       43 阅读
  10. 洛谷P6866 [COCI2019-2020#5] Emacs

    2024-03-21 07:54:02       40 阅读
  11. gitee上传存储文件、下载文件

    2024-03-21 07:54:02       42 阅读