Django 入门详解:从零开始构建你的第一个 Web 应用

发布于:2025-07-25 ⋅ 阅读:(21) ⋅ 点赞:(0)

Django 是一个高级的 Python Web 框架,鼓励快速开发和干净、实用的设计。它遵循“不要重复造轮子(Don't Repeat Yourself, DRY)”的原则,内置了诸如用户认证、内容管理、表单处理等常见功能,非常适合构建内容驱动的网站。

本文将带你从零开始,逐步了解 Django 的基本概念、项目结构、视图、模板、模型、路由等核心内容,并通过一个简单的博客应用示例,帮助你快速上手 Django 开发。


一、Django 简介

1. 什么是 Django?

Django 是一个由 Python 编写的开源 Web 框架,采用 MTV(Model-Template-View) 架构模式:

  • Model(模型):负责与数据库交互,定义数据结构。
  • Template(模板):负责展示层,即 HTML 页面。
  • View(视图):处理业务逻辑,决定将哪些数据展示给模板。

2. Django 的特点

  • 快速开发:内置大量实用功能,减少重复开发。
  • 安全性强:自动防御常见的安全漏洞(如 XSS、CSRF)。
  • 可扩展性高:支持多数据库、缓存、中间件等高级功能。
  • 社区活跃:拥有庞大的社区和丰富的第三方库。

二、安装 Django

1. 安装 Python 环境

确保你已安装 Python 3.8+,可以通过以下命令检查:

python --version

2. 创建虚拟环境(推荐)

python -m venv venv
source venv/bin/activate  # Linux/macOS
venv\Scripts\activate     # Windows

也可以使用conda

3. 安装 Django

pip install django

验证是否安装成功:

python -m django --version

三、创建你的第一个 Django 项目

1. 创建项目

django-admin startproject mysite
cd mysite

目录结构如下:

mysite/
├── manage.py
└── mysite/
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

2. 启动开发服务器

python manage.py runserver

访问 http://127.0.0.1:8000/,看到 Django 的欢迎页面表示项目创建成功。


四、创建第一个应用(App)

Django 鼓励将功能模块化,一个项目可以包含多个应用(App)。

1. 创建应用

python manage.py startapp blog

目录结构如下:

blog/
├── migrations/
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── tests.py
└── views.py

2. 注册应用

打开 mysite/settings.py,在 INSTALLED_APPS 中添加:

INSTALLED_APPS = [
    ...
    'blog',
]

五、编写第一个视图(View)

blog/views.py 中添加:

from django.http import HttpResponse

def index(request):
    return HttpResponse("欢迎来到我的博客!")

配置 URL 路由

  1. blog 目录下创建 urls.py
# blog/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
  1. 在主项目的 urls.py 中包含:
# mysite/urls.py
from django.urls import include, path

urlpatterns = [
    path('blog/', include('blog.urls')),
]

现在访问 http://127.0.0.1:8000/blog/,你会看到页面显示“欢迎来到我的博客!”。


六、使用模板(Template)

1. 创建模板目录

blog 应用下创建 templates/blog/ 目录:

blog/
└── templates/
    └── blog/
        └── index.html

index.html 中写入:

<!DOCTYPE html>
<html>
  <head>
    <title>我的博客</title>
  </head>
  <body>
    <h1>欢迎来到我的博客!</h1>
  </body>
</html>

2. 修改视图使用模板

# blog/views.py
from django.shortcuts import render

def index(request):
    return render(request, 'blog/index.html')

刷新页面,你会看到渲染后的 HTML 页面。


七、使用模型(Model)管理数据

1. 定义模型

blog/models.py 中定义一个博客文章模型:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    pub_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

2. 生成迁移文件

bash


深色版本

python manage.py makemigrations

3. 应用迁移

python manage.py migrate

4. 注册模型到 Admin

blog/admin.py 中注册模型:

from django.contrib import admin
from .models import Post

admin.site.register(Post)

5. 创建超级用户

python manage.py createsuperuser

登录 http://127.0.0.1:8000/admin,你可以添加、编辑、删除博客文章。


八、展示数据库中的数据

1. 修改视图,展示所有文章

def index(request):
    posts = Post.objects.all()
    return render(request, 'blog/index.html', {'posts': posts})

2. 修改模板,显示文章列表

<!-- blog/index.html -->
<h1>我的博客</h1>
<ul>
  {% for post in posts %}
  <li>{{ post.title }} - {{ post.pub_date }}</li>
  {% endfor %}
</ul>

九、总结

通过本文,你已经完成以下内容:

  • 创建了一个 Django 项目和应用
  • 编写了第一个视图并配置了 URL 路由
  • 使用模板渲染 HTML 页面
  • 定义模型并与数据库交互
  • 使用 Admin 管理后台
  • 查询并展示数据库中的数据

这只是 Django 的冰山一角。接下来可以学习:

  • 表单处理(Form)
  • 用户认证(Authentication)
  • REST API(使用 Django REST Framework)
  • 部署到生产环境(如 Nginx + Gunicorn)

十、推荐学习路径

  1. 官方文档:Django documentation | Django documentation | Django
  2. 推荐书籍:
    • 《Django for Beginners》
    • 《Django for APIs》
  1. 推荐项目练习:
    • 博客系统
    • 任务管理系统
    • 电商网站

附录:常用命令汇总

命令

说明

django-admin startproject

创建项目

python manage.py startapp

创建应用

python manage.py runserver

启动开发服务器

python manage.py makemigrations

生成迁移文件

python manage.py migrate

应用迁移

python manage.py createsuperuser

创建管理员用户

python manage.py shell

进入 Django Shell

python manage.py test

运行测试


网站公告

今日签到

点亮在社区的每一天
去签到