news 2026/3/4 10:00:53

搭建一个基于Django框架的WebApi项目

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
搭建一个基于Django框架的WebApi项目

搭建一个基于Django框架的WebApi项目

Django是一个强大的Python Web框架,以其“快速开发”和“不要重复自己”的原则闻名。到2026年,Django 5.x已成为主流版本,集成更强的异步支持和安全特性。本教程从零指导您搭建一个基于Django的Web API项目,使用Django REST Framework(DRF)实现RESTful API。示例项目:一个简单的“书籍管理”API,支持CRUD操作。整个过程基于Python 3.12+和Django 5.0+,适合初学者到中级开发者。

前提:确保您有Python环境(推荐虚拟环境)。如果没有,安装Python并用pip install virtualenv创建虚拟环境。

1. 环境准备

步骤1:创建虚拟环境

# 创建项目目录mkdirdjango_api_projectcddjango_api_project# 创建并激活虚拟环境(Windows用Scripts\activate)python -m venv venvsourcevenv/bin/activate# Linux/Mac# 升级pippipinstall--upgrade pip

步骤2:安装依赖

Django REST Framework是构建API的核心库。

pipinstalldjango djangorestframework

步骤3:创建Django项目

django-admin startproject book_api.
  • book_api:项目名。
  • .:在当前目录创建。

项目结构:

book_api/ ├── manage.py └── book_api/ ├── __init__.py ├── asgi.py ├── settings.py ├── urls.py └── wsgi.py

2. 创建应用(App)

API功能放在一个App中。

python manage.py startapp books
  • books:App名。

添加App到settings.pyINSTALLED_APPS

# book_api/settings.pyINSTALLED_APPS=[...'rest_framework',# 添加DRF'books.apps.BooksConfig',# 添加您的App]

3. 定义模型(Models)

books/models.py中定义Book模型。

# books/models.pyfromdjango.dbimportmodelsclassBook(models.Model):title=models.CharField(max_length=200)author=models.CharField(max_length=100)published_date=models.DateField()description=models.TextField(blank=True)def__str__(self):returnself.title

迁移数据库

python manage.py makemigrations python manage.py migrate

4. 配置序列化器(Serializers)

DRF用序列化器将模型转为JSON。
books/serializers.py创建:

# books/serializers.pyfromrest_frameworkimportserializersfrom.modelsimportBookclassBookSerializer(serializers.ModelSerializer):classMeta:model=Book fields='__all__'# 或指定字段如 ['id', 'title', 'author']

5. 创建视图(Views)

使用DRF的ViewSet简化CRUD。
books/views.py

# books/views.pyfromrest_frameworkimportviewsetsfrom.modelsimportBookfrom.serializersimportBookSerializerclassBookViewSet(viewsets.ModelViewSet):queryset=Book.objects.all()serializer_class=BookSerializer

6. 配置URL路由

项目级urls.py

# book_api/urls.pyfromdjango.contribimportadminfromdjango.urlsimportpath,includefromrest_framework.routersimportDefaultRouterfrombooks.viewsimportBookViewSet router=DefaultRouter()router.register(r'books',BookViewSet)urlpatterns=[path('admin/',admin.site.urls),path('api/',include(router.urls)),# API根路径]

7. 配置REST Framework

settings.py添加DRF设置(可选,默认即可):

# book_api/settings.pyREST_FRAMEWORK={'DEFAULT_PAGINATION_CLASS':'rest_framework.pagination.PageNumberPagination','PAGE_SIZE':10,# 分页大小}

8. 运行与测试

启动服务器

python manage.py runserver
  • 访问:http://127.0.0.1:8000/api/books/ (浏览器显示DRF界面)。

创建超级用户(可选,管理后台)

python manage.py createsuperuser
  • 访问/admin/添加书籍数据。

测试API

用Postman或curl:

  • GET /api/books/:列出所有书籍。
  • POST /api/books/:创建书籍(JSON: {“title”: “Django Book”, “author”: “Author”, “published_date”: “2026-01-01”})。
  • PUT /api/books/1/:更新ID=1的书籍。
  • DELETE /api/books/1/:删除。

9. 优化与高级配置

  • 认证与权限:在settings.py添加DEFAULT_AUTHENTICATION_CLASSES,如JWT或Token。
    REST_FRAMEWORK={...'DEFAULT_AUTHENTICATION_CLASSES':['rest_framework.authentication.BasicAuthentication','rest_framework.authentication.SessionAuthentication',],'DEFAULT_PERMISSION_CLASSES':['rest_framework.permissions.IsAuthenticated',]}
  • 异步支持:Django 5.x用ASGI(asgi.py),集成Celery处理后台任务。
  • 部署:用Gunicorn + Nginx,数据库用PostgreSQL生产级。
  • 安全:启用CORS(pip install django-cors-headers),配置ALLOWED_HOSTS。
  • 文档:用DRF的Swagger(pip install drf-yasg),添加URL。

10. 常见问题排查

  • No migrations:运行makemigrationsmigrate
  • API 404:检查urls.py路由。
  • 序列化错误:确保模型字段匹配。
  • 性能:大项目用缓存(Redis)和分页。

通过这个项目,您已掌握Django API基础。建议扩展:添加用户认证、过滤器(search_fields)。如果需要完整代码或特定功能,欢迎评论交流~ 😄

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/4 17:53:44

AI人脸隐私卫士能否支持S3存储?对象存储集成教程

AI人脸隐私卫士能否支持S3存储?对象存储集成教程 1. 引言:AI人脸隐私卫士的工程演进需求 随着数据合规与隐私保护法规(如GDPR、CCPA)在全球范围内的逐步落地,图像中的人脸信息脱敏已成为企业级应用中的刚性需求。当前…

作者头像 李华
网站建设 2026/3/3 8:48:12

HunyuanVideo-Foley API封装:构建团队共享音效服务接口

HunyuanVideo-Foley API封装:构建团队共享音效服务接口 1. 背景与需求分析 1.1 视频音效生成的技术演进 随着AIGC在多媒体领域的深入发展,视频内容的自动化生产正从“视觉生成”向“多模态协同”演进。传统音效制作依赖专业音频工程师手动匹配动作与声…

作者头像 李华
网站建设 2026/3/2 14:23:50

HunyuanVideo-Foley蒸馏技术:小模型复现大模型音效生成能力

HunyuanVideo-Foley蒸馏技术:小模型复现大模型音效生成能力 1. 技术背景与核心价值 1.1 视频音效生成的行业痛点 在影视、短视频和广告制作中,高质量音效是提升沉浸感的关键。传统音效添加依赖人工逐帧匹配,耗时耗力且成本高昂。尽管近年来…

作者头像 李华
网站建设 2026/2/28 21:37:10

智能客服实战:用Qwen3-4B-Instruct-2507快速搭建问答机器人

智能客服实战:用Qwen3-4B-Instruct-2507快速搭建问答机器人 在企业级AI应用中,智能客服系统正从“关键词匹配”向“语义理解上下文感知”的智能化方向演进。然而,部署一个响应迅速、理解精准、支持长上下文的对话模型往往面临算力成本高、部…

作者头像 李华
网站建设 2026/3/3 21:03:09

从零部署AI人脸隐私卫士:WebUI集成完整指南

从零部署AI人脸隐私卫士:WebUI集成完整指南 1. 引言 1.1 学习目标 在数据隐私日益受到关注的今天,如何安全、高效地对图像中的人脸信息进行脱敏处理,已成为个人用户和企业开发者共同面临的挑战。本文将带你从零开始部署一个本地运行的AI人…

作者头像 李华
网站建设 2026/3/4 17:20:02

从0开始学多模态AI:Qwen3-VL-2B-Instruct新手入门指南

从0开始学多模态AI:Qwen3-VL-2B-Instruct新手入门指南 1. 引言:为什么选择 Qwen3-VL-2B-Instruct? 在当前多模态大模型快速演进的背景下,Qwen3-VL 系列作为阿里云推出的最新一代视觉-语言模型,代表了当前开源多模态技…

作者头像 李华