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

Django 入门:快速构建 Python Web 应用的强大框架

Django 入门:快速构建 Python Web 应用的强大框架

今天我们来深入探讨 Django,一个基于 Python 的高性能 Web 开发框架。Django 以其“电池全包”的设计理念、强大的 ORM 和快速开发能力,成为构建现代化 Web 应用的首选工具。本文将带你从零搭建一个简单的 Django 项目,实现用户管理的 REST API,适合初学者快速上手,同时为有经验的开发者提供进阶建议和优化思路。

Django 提供开箱即用的功能,如用户认证、管理员界面和数据库管理,特别适合快速原型开发和企业级应用。本文基于 Django 5.x,使用 Python 3.10+ 和 SQLite(默认数据库),通过 Django REST Framework 实现 API。让我们开始吧!

前置准备

在开始之前,确保开发环境已就绪:

  • Python:推荐 Python 3.10 或更高(Django 5.x 要求 3.10+)。
  • 包管理器:pip(默认)或 Poetry,用于安装依赖。
  • IDE:PyCharm、VS Code 或其他支持 Python 的编辑器。
  • 数据库:默认使用 SQLite(无需额外安装),生产环境可切换到 PostgreSQL。
  • 项目结构:创建一个 Django 项目,目录如下:
    django-demo
    ├── manage.py
    ├── demo
    │   ├── __init__.py
    │   ├── settings.py
    │   ├── urls.py
    │   ├── asgi.py
    │   └── wsgi.py
    ├── users
    │   ├── migrations
    │   ├── __init__.py
    │   ├── admin.py
    │   ├── models.py
    │   ├── serializers.py
    │   ├── urls.py
    │   └── views.py
    └── requirements.txt
    

安装 Python 和 Django

  • 确保 Python 已安装:python3 --version
  • 创建虚拟环境:python3 -m venv venv && source venv/bin/activate(Linux/Mac)或 venv\Scripts\activate(Windows)。
  • 安装 Django 和 Django REST Framework:
    pip install django==5.1 django-rest-framework
    

步骤 1: 创建 Django 项目和应用

初始化项目并创建一个用户管理应用。

# 创建项目
django-admin startproject demo
cd demo# 创建应用
python manage.py startapp users

配置应用
编辑 demo/settings.py,添加 usersrest_frameworkINSTALLED_APPS

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','rest_framework',  # REST Framework'users',           # 用户应用
]

步骤 2: 定义模型

users/models.py 中定义 User 模型:

from django.db import modelsclass User(models.Model):name = models.CharField(max_length=50)age = models.IntegerField()def __str__(self):return self.name

迁移数据库

python manage.py makemigrations
python manage.py migrate

说明

  • CharFieldIntegerField:定义字段类型。
  • makemigrations:生成数据库迁移文件。
  • migrate:应用迁移,创建表(SQLite 默认存储在 db.sqlite3)。

步骤 3: 创建序列化器

users/serializers.py 中定义序列化器,用于将模型转换为 JSON:

from rest_framework import serializers
from .models import Userclass UserSerializer(serializers.ModelSerializer):class Meta:model = Userfields = ['id', 'name', 'age']

说明

  • ModelSerializer:自动映射模型字段。
  • fields:指定序列化的字段。

步骤 4: 创建视图和 URL

视图

users/views.py 中定义 REST API 视图:

from rest_framework import generics
from .models import User
from .serializers import UserSerializerclass UserListCreateView(generics.ListCreateAPIView):queryset = User.objects.all()serializer_class = UserSerializerclass UserDetailView(generics.RetrieveUpdateDestroyAPIView):queryset = User.objects.all()serializer_class = UserSerializer

说明

  • ListCreateAPIView:支持 GET(列表)和 POST(创建)。
  • RetrieveUpdateDestroyAPIView:支持 GET/PUT/DELETE(单条记录)。

URL 路由

users/urls.py 中定义路由:

from django.urls import path
from .views import UserListCreateView, UserDetailViewurlpatterns = [path('users/', UserListCreateView.as_view(), name='user-list'),path('users/<int:pk>/', UserDetailView.as_view(), name='user-detail'),
]

demo/urls.py 中包含应用路由:

from django.contrib import admin
from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('api/', include('users.urls')),
]

步骤 5: 运行和测试

  1. 启动服务器

    python manage.py runserver
    
  2. 测试 API

    • GET http://localhost:8000/api/users/:列出所有用户。
    • POST http://localhost:8000/api/users/
      {"name": "Alice","age": 25
      }
      
    • GET http://localhost:8000/api/users/1/:获取 ID 为 1 的用户。
  3. 访问 Admin 界面

    • 创建超级用户:python manage.py createsuperuser
    • 访问 http://localhost:8000/admin/,登录后管理用户数据。
  4. 调试技巧

    • 错误日志:查看终端输出或启用 DEBUG=Truesettings.py)。
    • 数据库问题:检查 db.sqlite3 或迁移状态(python manage.py showmigrations)。
    • API 测试:使用 Postman 或 curl

进阶与最佳实践

  • 生产配置

    • 设置 DEBUG=False 并配置静态文件服务:
      STATIC_ROOT = BASE_DIR / 'staticfiles'
      
      运行 python manage.py collectstatic
    • 使用 PostgreSQL:修改 settings.pyDATABASES 配置。
  • 认证和权限

    • 集成 rest_framework.authenticationpermissions
      REST_FRAMEWORK = {'DEFAULT_AUTHENTICATION_CLASSES': ['rest_framework.authentication.TokenAuthentication',],'DEFAULT_PERMISSION_CLASSES': ['rest_framework.permissions.IsAuthenticated',]
      }
      
  • 性能优化

    • 启用缓存:集成 Redis 或 Memcached。
    • 分页:为 ListCreateAPIView 添加分页:
      REST_FRAMEWORK = {'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination','PAGE_SIZE': 10
      }
      
  • 部署

    • 使用 Gunicorn 和 Nginx:
      pip install gunicorn
      gunicorn demo.wsgi -b 0.0.0.0:8000
      
    • 容器化:创建 Dockerfile:
      FROM python:3.10-slim
      WORKDIR /app
      COPY requirements.txt .
      RUN pip install -r requirements.txt
      COPY . .
      CMD ["gunicorn", "demo.wsgi", "-b", "0.0.0.0:8000"]
      
  • 资源推荐:Django 官网(djangoproject.com)、《Django for Professionals》。多实践 REST API 和认证系统。

总结

通过这个 Django 示例,你学会了创建项目、定义模型、构建 REST API 和使用 Admin 界面。Django 的全包式设计极大简化了 Web 开发,适合快速原型和复杂应用。

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

相关文章:

  • 返利机器人的智能对话架构:基于NLP(ChatGLM)+Spring Boot的客服机器人开发实践
  • 专题:2025零售数字化与即时零售竞争洞察报告|附130+份报告PDF、数据仪表盘汇总下载
  • 语义网络对人工智能中自然语言处理的深层语义分析的影响与启示
  • ADC (Analog-to-Digital Converter) 模数转换器详解
  • 商城类的网站怎么做优化网络建设方案ppt
  • Go基础(⑧JSON Web Token)
  • MR+AI变革传统MRO,提升工作效率
  • 每周读书与学习->初识JMeter 元件(三)
  • MR模板以及代码审查规范
  • 什么是网站推广优化剧院网站建设
  • dede如何手机网站和电脑网站的数据同步更新网站改版是什么意思
  • ubuntu安装go
  • 用 go-commons 高效处理字符串
  • 二手网站建设论文广州做网站多少钱
  • 网站建设前端工程师岗位职责网页设计页面代码
  • 从神经信号到驾驶安全:Mentalab无线脑电图系统赋能汽车人因研究与HMI优化
  • AST语法树应用于sql检查
  • 分转科技:科技乐享生活,时尚分转未来
  • 推广型网站免费建设网页开发价格
  • Livox-Mid360驱动安装(ROS1/Ubuntu20.04)
  • 建设厅网站查询电工证件做枪版视频网站犯法吗
  • 开启C++新世界:从函数到对象的两天思维跃迁
  • C# 中Ping 网络连通性检测实战
  • 阿里 + 南洋理工新突破!MMR1 模型破解多模态推理训练难题,开源160 万数据 + 15k RL 样本!
  • 多模态PDF解析
  • 如何判断模型矩阵是否做了镜像
  • C语言常量和存储类别详解
  • 计算机视觉进阶教学之Mediapipe库(一)
  • 《道德经》第八章
  • 开源 C# 快速开发(十一)线程