Django 入门详解:从零开始构建你的第一个 Web 应用
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 venvsource venv/bin/activate # Linux/macOSvenv\\Scripts\\activate # Windows
也可以使用conda
3. 安装 Django
pip install django
验证是否安装成功:
python -m django --version
三、创建你的第一个 Django 项目
1. 创建项目
django-admin startproject mysitecd 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 HttpResponsedef index(request): return HttpResponse(\"欢迎来到我的博客!\")
配置 URL 路由
- 在
blog
目录下创建urls.py
:
# blog/urls.pyfrom django.urls import pathfrom . import viewsurlpatterns = [ path(\'\', views.index, name=\'index\'),]
- 在主项目的
urls.py
中包含:
# mysite/urls.pyfrom django.urls import include, pathurlpatterns = [ path(\'blog/\', include(\'blog.urls\')),]
现在访问 http://127.0.0.1:8000/blog/
,你会看到页面显示“欢迎来到我的博客!”。
六、使用模板(Template)
1. 创建模板目录
在 blog
应用下创建 templates/blog/
目录:
blog/└── templates/ └── blog/ └── index.html
在 index.html
中写入:
我的博客 欢迎来到我的博客!
2. 修改视图使用模板
# blog/views.pyfrom django.shortcuts import renderdef index(request): return render(request, \'blog/index.html\')
刷新页面,你会看到渲染后的 HTML 页面。
七、使用模型(Model)管理数据
1. 定义模型
在 blog/models.py
中定义一个博客文章模型:
from django.db import modelsclass 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 adminfrom .models import Postadmin.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. 修改模板,显示文章列表
我的博客
{% for post in posts %} - {{ post.title }} - {{ post.pub_date }}
{% endfor %}
九、总结
通过本文,你已经完成以下内容:
- 创建了一个 Django 项目和应用
- 编写了第一个视图并配置了 URL 路由
- 使用模板渲染 HTML 页面
- 定义模型并与数据库交互
- 使用 Admin 管理后台
- 查询并展示数据库中的数据
这只是 Django 的冰山一角。接下来可以学习:
- 表单处理(Form)
- 用户认证(Authentication)
- REST API(使用 Django REST Framework)
- 部署到生产环境(如 Nginx + Gunicorn)
十、推荐学习路径
- 官方文档:Django documentation | Django documentation | Django
- 推荐书籍:
-
- 《Django for Beginners》
- 《Django for APIs》
- 推荐项目练习:
-
- 博客系统
- 任务管理系统
- 电商网站
附录:常用命令汇总
命令
说明
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
运行测试