跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

基于 Django 框架搭建 WebAPI 项目实战

Django WebAPI 项目搭建涉及环境配置、数据库连接、缓存中间件及接口文档生成。涵盖从项目初始化到依赖安装,再到 MySQL 与 Redis 配置,以及 JWT 认证和 Swagger 文档集成的完整流程。通过标准代码示例展示如何快速构建稳定可靠的后端服务架构。

灵魂伴侣发布于 2026/4/7更新于 2026/10/1591 浏览
基于 Django 框架搭建 WebAPI 项目实战

基于 Django 框架搭建 WebAPI 项目实战

一、创建 Django 项目

在开始之前,确保你的 Python 环境已安装 Django。如果尚未安装,可以直接通过 pip 进行初始化:

pip install django

接着创建一个新项目目录,这里我们命名为 myproject:

django-admin startproject myproject
cd myproject

进入项目根目录后,我们需要添加一个具体的应用模块,比如叫 myapp:

python manage.py startapp myapp

此时项目结构已经成型,接下来需要引入第三方库来支持 RESTful API 开发。

二、安装相关依赖

构建标准的 WebAPI 通常需要处理序列化、认证和文档生成。除了基础的 Django,建议安装以下核心包:

pip install djangorestframework mysqlclient redis drf-yasg djangorestframework-simplejwt
  • djangorestframework (DRF):提供强大的 API 视图和序列化器。
  • mysqlclient:用于连接 MySQL 数据库。
  • redis:作为缓存中间件或会话存储。
  • drf-yasg:自动生成 Swagger/OpenAPI 文档。
  • djangostframework-simplejwt:实现 JWT 令牌认证。

三、配置 MySQL 数据库

打开 settings.py,找到 DATABASES 配置项。将默认的 SQLite 替换为 MySQL 驱动,并填入实际的环境信息。注意密码中若包含特殊字符,需进行 URL 编码处理。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'your_database_name',
        'USER': 'your_username',
        'PASSWORD': 'your_password',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

配置完成后,记得执行迁移命令以创建数据库表结构:

python manage.py migrate

四、配置 Redis 缓存

Redis 能显著提升接口响应速度。在 settings.py 的 中添加 Redis 后端配置:

CACHES
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}

同时需要在 INSTALLED_APPS 中注册 django_redis 插件(如果未自动安装)。

五、配置 JWT 中间件

为了安全起见,API 接口通常采用无状态的 JWT 认证。在 settings.py 中配置 DRF 的默认认证类:

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    ),
}

并在 urls.py 中导入 Token 视图,以便前端获取访问令牌:

from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView
urlpatterns = [
    path('api/token/', TokenObtainPairView.as_view()),
    path('api/token/refresh/', TokenRefreshView.as_view()),
]

六、配置 Swagger 接口文档

为了让前后端协作更顺畅,集成 Swagger 是最佳实践。在 urls.py 中注册 SchemaGenerator:

from drf_yasg.views import get_schema_view
from drf_yasg import openapi

schema_view = get_schema_view(
   openapi.Info(title="Django API", default_version='v1'),
   public=True,
)

urlpatterns += [
    re_path(r'^swagger(?P<format>\.json|\.yaml)$', schema_view.without_ui(cache_timeout=0), name='schema-json'),
    re_path(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
]

启动服务后,访问 /swagger/ 即可看到可视化的接口文档。

七、创建示例 API

最后,我们在 myapp/views.py 中编写一个简单的视图函数,验证整个链路是否通畅:

from rest_framework.decorators import api_view
from rest_framework.response import Response

@api_view(['GET'])
def hello_world(request):
    return Response({'message': 'Hello, World!'})

别忘了在 myapp/urls.py 中注册路由,并在主 urls.py 中引入该应用的路径。

八、总结

至此,一个具备数据库连接、缓存支持、JWT 认证及文档生成的 Django WebAPI 基础架构已完成。后续只需根据业务需求扩展模型和视图即可。在实际开发中,记得做好异常处理和日志记录,保证服务的稳定性。

目录

  1. 基于 Django 框架搭建 WebAPI 项目实战
  2. 一、创建 Django 项目
  3. 二、安装相关依赖
  4. 三、配置 MySQL 数据库
  5. 四、配置 Redis 缓存
  6. 五、配置 JWT 中间件
  7. 六、配置 Swagger 接口文档
  8. 七、创建示例 API
  9. 八、总结

更多推荐文章

查看全部
  • SmolVLA 模型 TensorRT 加速实战:ONNX 导出与性能优化
  • IntelliJ IDEA 接入 AI 编程助手:Copilot、DeepSeek 与 GPT-4o Mini
  • 宏智树 AI:重构学术创作流程 ——ChatGPT 学术版驱动的 AI 5.0 智能写作平台
  • Java 内存模型(JMM)详解
  • 在 Cursor 中配置并使用 MCP 服务指南
  • VSCode Copilot 登录异常排查与修复指南
  • StreamVLN 具身导航复现与模型推理指南
  • AI 时代技术民主化:文科生为何成最大受益者
  • 开源 GEO 优化工具源码部署搭建指南
  • DeepSeek-Prover-V1 架构解析:Llama 模型定理证明优化
  • RAGChecker:亚马逊开源的 RAG 系统细粒度评估框架
  • GESP C++ 四级 2025 年 12 月真题深度解析
  • Stable Diffusion WebUI 数据集标签编辑工具详解
  • SRS 流媒体服务器安装配置与使用指南
  • llama.cpp 大模型本地部署与使用指南
  • JVS-APS是什么?算法驱动+低代码融合,重塑智能排产新范式!
  • MySQL 9.1.0 安装教程
  • 机器人实践:Foxglove 开发环境搭建指南及常见问题
  • Go 语言概览:Google 推出的系统级编程语言
  • 在 Windows 上运行 Python 脚本

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online