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

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

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

灵魂伴侣发布于 2026/4/7更新于 2026/5/2212 浏览
基于 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 的 CACHES 中添加 Redis 后端配置:

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. 八、总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Python 入门指南:核心优势、环境配置与最佳实践
  • Python webbrowser 库:跨平台浏览器控制接口
  • 电子招标采购商城系统优化传统采购与数字化升级
  • 自然语言处理在社交媒体分析中的应用与实战
  • Python 基础:详解 for 循环、range 函数与控制流语句
  • Spring 整合 Shiro 使用 Redis 缓存会话时报错排查与解决
  • Qwen3-VL 与 Qwen2-VL 对比:视觉感知升级实战评测
  • 前端精确数字运算:使用 BigNumber.js 解决 JavaScript 精度问题
  • Vue 基础入门教程(一)
  • 国内主流 AI 工具对比:豆包、元宝、千问等七款应用
  • SmolVLA 模型 TensorRT 加速实战:ONNX 导出与部署优化
  • DeepSeek Janus-Pro 多模态大模型本地部署指南
  • 基于 Java Web 与 Spring Boot 的在线考试系统设计实现
  • 生成式人工智能与大语言模型在医疗领域的融合路线图
  • OpenClaw 本地部署教程:环境配置、插件开发与常见问题排查
  • Vue 3 前端开发实战与成长经验总结
  • 从零搭建 Vue 项目:使用 Webpack 配置开发环境
  • 谷歌 Infini-attention 机制:1B 模型支持百万级上下文
  • 昇腾 NPU 实战指南:部署与推理 CodeLlama
  • ComfyUI-Easy-Use完整指南:快速提升AI绘画效率的终极解决方案

相关免费在线工具

  • 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