当前位置: 首页 > news >正文

Django 的文档接口

是的,Django 也有类似的自动生成文档的工具,但需要安装第三方库。主要有以下几个流行的解决方案:

1. Django REST Framework (DRF) 的自动文档(最常用)

安装和配置

pip install djangorestframework

settings.py 配置

INSTALLED_APPS = [# ...'rest_framework','rest_framework_swagger',  # 或者使用 drf-yasg
]REST_FRAMEWORK = {'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema',
}

访问地址

http://127.0.0.1:8000/swagger/

http://127.0.0.1:8000/docs/

2. drf-yasg(推荐,功能更强大)

安装

pip install drf-yasg

配置 urls.py

from django.urls import path, include
from rest_framework import permissions
from drf_yasg.views import get_schema_view
from drf_yasg import openapischema_view = get_schema_view(openapi.Info(title="API 文档",default_version='v1',description="API 描述",terms_of_service="https://www.google.com/policies/terms/",contact=openapi.Contact(email="contact@yourapi.local"),license=openapi.License(name="BSD License"),),public=True,permission_classes=(permissions.AllowAny,),
)urlpatterns = [# ... 其他路由path('swagger<format>/', schema_view.without_ui(cache_timeout=0), name='schema-json'),path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
]

访问地址

# Swagger UI (交互式)
http://127.0.0.1:8000/swagger/# ReDoc (静态文档)
http://127.0.0.1:8000/redoc/# 原始 OpenAPI JSON
http://127.0.0.1:8000/swagger.json

3. Django Ninja(类似 FastAPI 的现代方案)

安装

pip install django-ninja

使用示例

from ninja import NinjaAPIapi = NinjaAPI()@api.get("/hello")
def hello(request):return {"message": "Hello World"}@api.post("/items")
def create_item(request, name: str, price: float):return {"name": name, "price": price}@api.put("/items/{item_id}")
def update_item(request, item_id: int, name: str):return {"item_id": item_id, "name": name}@api.delete("/items/{item_id}")
def delete_item(request, item_id: int):return {"deleted": item_id}

访问地址

http://127.0.0.1:8000/api/docs

4. 核心 Django 的 Schema 生成(基础功能)

Django 3.0+ 自带基础的 schema 生成:

配置 urls.py

from django.urls import path, include
from rest_framework.documentation import include_docs_urlsurlpatterns = [# ...path('docs/', include_docs_urls(title='API 文档')),
]

访问地址

http://127.0.0.1:8000/docs/

完整示例(使用 drf-yasg)

视图示例

# views.py
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import statusclass UserAPI(APIView):def get(self, request):"""获取用户列表"""return Response([{"id": 1, "name": "John"}])def post(self, request):"""创建新用户"""data = request.datareturn Response({"id": 2, "name": data.get('name')}, status=status.HTTP_201_CREATED)def put(self, request, user_id):"""更新用户"""data = request.datareturn Response({"id": user_id, "name": data.get('name')})def delete(self, request, user_id):"""删除用户"""return Response(status=status.HTTP_204_NO_CONTENT)

序列化器

# serializers.py
from rest_framework import serializersclass UserSerializer(serializers.Serializer):name = serializers.CharField(max_length=100)email = serializers.EmailField()

推荐方案

对于新项目:推荐使用 Django Ninja,语法类似 FastAPI,文档生成功能强大。

对于现有 DRF 项目:推荐使用 drf-yasg,功能最完善。

访问方式

  • 启动 Django 开发服务器:python manage.py runserver
  • 访问对应的文档地址(如 http://127.0.0.1:8000/swagger/

这些工具都会自动包含所有的 HTTP 方法(GET、POST、PUT、DELETE、PATCH 等),并提供交互式测试功能。

http://www.dtcms.com/a/486225.html

相关文章:

  • blender中对合并的物体重复设置材质,删除重复材质,批量复制材质
  • IDEA界面突然出现一条“竖线”,附解决办法
  • Git 学习及使用
  • 使用OpenGL加速图像处理
  • CUDA 调试器 sanitizer,检测数据竞争,竞争条件 race condition
  • Blender布料物理模拟生成插件 Simply Cloth Studio V1.4.4 + Simply Cloth Pro v3.0附使用教程
  • AWS CloudWatch:服务器的“眼睛”,实时监控一切动向
  • 云南省建设厅合同网站嵊州门户网站
  • 做网站需要学jsp我也来做外国网站购物
  • 异步数据采集实践:用 Python/Node.js 构建高并发淘宝商品 API 调用引擎
  • Spring Boot 3零基础教程,yml文件中配置和类的属性绑定,笔记15
  • Lua C API 中一段LUA建表过程解释
  • 用于大语言模型后训练阶段的新方法GVPO(Group Variance Policy Optimization)
  • k8s集群环境下Jenkins环境性能测试项目实战
  • 【k8s】在 k8s上部署一个 web 服务
  • 怎做网站网页设计属于什么行业
  • 02 Oracle JDK 下载及配置(解压缩版)
  • 「10.11」闪崩前比特币做空风波
  • 目标检测学习总结
  • java求职学习day40
  • 服装公司网站首页做头像的网站空白
  • 在 Microsoft Azure 上部署 ClickHouse 数据仓库:托管服务与自行部署的全面指南
  • 橙色可以做哪些网站沈阳网站建设024w
  • 网络设备配置:交换机、路由器OSPF和BGP、防火墙策略管理
  • 深圳建设工程信息网站科技有限公司网页设计
  • h5网站开发培训哪里好项目网创业
  • C++ Hash
  • 守护能源动脉:高精度远距离管道状态监测!
  • HarmonyOS应用配置文件与资源组织深度解析
  • 【完整源码+数据集+部署教程】烟叶植株计数与分类系统源码和数据集:改进yolo11-TADDH