Django入门教程:搭建你的第一个Python网站
开篇:Django 是什么?它是用来做什么的?

你是否曾经想拥有一个属于自己的网站,但又不知道从哪里开始?别担心!今天我们要学习的是 Django —— 一款用 Python 编写的强大、灵活且功能齐全的 Web框架,专门帮助开发者快速搭建动态网站。
那么问题来了:什么是 Web 框架?
简单来说,它就像是一套工具箱,帮助我们更高效地编写网页后台(也就是处理用户请求、数据存储等逻辑的部分)。有了这个工具箱,我们就不用从零开始造轮子了,而是可以用现成的功能来构建应用。
✅ Django 的特点:
- 快速开发:内置了很多常用功能,如数据库管理、用户认证、后台管理系统等。
- 安全性高:自带很多安全防护机制,避免常见的攻击方式。
- 可扩展性强:适用于小型网站到大型系统。
- 社区活跃:遇到问题可以轻松找到解决方案或请教他人。
在本教程中,我们将通过一个实际的小项目,手把手带你用 Django 搭建一个简单的个人博客网站。即使你是编程新手,也完全不用担心,我们会用最通俗易懂的语言,一步步带你走进后端开发的世界!
环境准备:搭建我们的“代码工厂”

在正式开始写代码之前,我们需要先为 Django 准备好“工作环境”。这有点像你要盖房子前要先把工地收拾干净、准备好各种材料和工具一样。
✅ 第一步:安装 Python
目前 Django 支持 Python 3.8 到 3.11 版本。如果你还没安装 Python,请访问官网 https://www.python.org/ 下载对应系统的最新版本。
安装完之后,打开终端或命令行输入:
python --version
如果你看到类似下面的输出说明安装成功:
Python 3.11.5
📌 注意:Windows 用户建议选择自定义安装并勾选“Add to PATH”,这样后续操作会更方便。
✅ 第二步:安装虚拟环境工具 venv
为了不污染全局的 Python 环境,我们通常使用虚拟环境来隔离每个项目的依赖包。
Python 自带了一个叫做 venv 的模块,可以帮我们创建独立环境。
# 创建一个名为 myenv 的虚拟环境(名字随意)
python -m venv myenv
激活虚拟环境
- Windows 上运行:
myenv\Scripts\activate
- Mac/Linux 上运行:
source myenv/bin/activate
激活后你会看到命令提示符前面多出了一个 (myenv) 提示,表示你现在正处于虚拟环境中。
✅ 第三步:安装 Django
现在我们可以用 pip 安装 Django 了:
pip install django
安装完成后查看版本:
django-admin --version
看到类似 4.2.5 这样的数字就表示安装成功啦!
核心概念:Django 是怎么工作的?

在正式动手写代码之前,先来了解一下 Django 中几个关键的概念,它们是理解整个框架的基础。
🔑 1. 项目(Project)与应用(App)
- 项目(Project):是一个完整网站的整体结构,相当于整个公司的总架构。
- 应用(App):是项目中的一个个小模块,比如“博客”、“论坛”、“用户中心”都是一个个 App。
举个🌰例子:
假设你想做一个在线商城,你可以把“商品浏览”、“用户登录”、“购物车”分别做成不同的 app,然后放在同一个项目里统一管理。
🔑 2. MTV 设计模式(模型 Model - 模板 Template - 视图 View)
Django 使用的是 MTV 模式,类似于 MVC 模式,它的结构如下:
| 层级 | 作用 | 对应文件 |
|---|---|---|
| Model(模型) | 负责数据存储(如数据库表结构) | models.py |
| View(视图) | 处理业务逻辑,接收请求并返回响应 | views.py |
| Template(模板) | 前端页面显示的内容,HTML 文件 | templates/ |
虽然名称叫法不同,但理解上可以认为:
View ≈ 控制器 Controller
Template ≈ 视图 View
🔑 3. 数据库迁移(Migrations)
Django 提供了一种自动同步模型(models.py 中定义的数据结构)到数据库的方法,这个过程就叫做 “迁移(Migration)”。
每次我们修改了数据库结构(如添加字段、修改字段类型),都要执行两个命令:
python manage.py makemigrations
python manage.py migrate
前者生成迁移脚本,后者真正应用更改到数据库。
🔑 4. 后台管理系统(Admin)
Django 自带了强大的后台管理系统,只需要注册你的模型,就能快速拥有一个可视化界面来管理数据库内容。
例如我们可以用它来:
- 添加文章
- 修改文章标题
- 删除评论等等
是不是很酷?😊
实战项目:搭建一个简单的博客网站
现在我们要动手做一个 迷你博客网站,它将具备以下功能:
- 显示所有文章列表;
- 点击某篇文章可以查看详情;
- 后台可以添加、编辑文章。
听起来是不是很酷?那我们就一起一步一步来实现吧!
Step 1:创建项目和应用
先创建一个新项目:
django-admin startproject myblog
cd myblog
接着创建一个名为 blog 的应用:
python manage.py startapp blog
现在你的目录结构应该是这样的:
myblog/
├── blog/
│ ├── migrations/
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── myblog/
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
别忘了在 settings.py 的 INSTALLED_APPS 中添加 'blog',这样才能让 Django 知道我们新增了这个应用:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', # 添加这一行
]
Step 2:定义模型(Model)
打开 blog/models.py 文件,写下我们的文章模型:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200) # 文章标题
content = models.TextField() # 正文内容
created_at = models.DateTimeField(auto_now_add=True) # 创建时间
updated_at = models.DateTimeField(auto_now=True) # 最后修改时间
def __str__(self):
return self.title
保存后运行迁移命令:
python manage.py makemigrations
python manage.py migrate
Step 3:注册模型到 Admin 后台
打开 blog/admin.py,添加以下代码:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
启动开发服务器:
python manage.py runserver
打开浏览器访问:http://127.0.0.1:8000/admin
首次访问你需要创建一个管理员账号:
python manage.py createsuperuser
按照提示输入用户名、邮箱和密码即可。
登录后你应该能看到 Post 模型,并可以添加一篇文章试试看 👇
Step 4:创建视图(View)
接下来我们要写出显示文章列表的视图。
打开 blog/views.py,编写如下内容:
from django.shortcuts import render
from .models import Post
def post_list(request):
posts = Post.objects.all().order_by('-created_at') # 获取所有文章并按时间倒序排列
return render(request, 'blog/post_list.html', {'posts': posts})
Step 5:配置 URL 路由
我们需要设置访问地址 /posts/ 来展示文章列表。
新建 blog/urls.py 文件,并写入以下内容:
from django.urls import path
from . import views
urlpatterns = [
path('posts/', views.post_list, name='post_list'),
]
接着还需要在主项目 myblog/urls.py 中导入路由:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')), # 匹配根路径
]
Step 6:创建模板(Template)
为了让用户看到文章列表,我们需要写 HTML 页面。
首先,在 blog 目录下新建 templates/blog/post_list.html 文件:
<!-- templates/blog/post_list.html -->
<!DOCTYPE html>
<html>
<head>
<title>我的博客</title>
</head>
<body>
<h1>欢迎来到我的博客</h1>
<ul>
{% for post in posts %}
<li>
<a href="#">{{ post.title }}</a>
<p>{{ post.content|truncatewords:20 }}</p>
<small>{{ post.created_at }}</small>
</li>
{% empty %}
<li>还没有任何文章哦~</li>
{% endfor %}
</ul>
</body>
</html>
保存后重启服务再次访问 /posts/,你应该可以看到文章列表页面啦!
🎉 恭喜你完成了第一个 Django 页面!
Step 7:添加详情页(可选进阶)
如果你想继续练习,可以再试着做一下文章详情页。
步骤简述如下:
- 在模型中加入 slug 字段(友好 URL);
- 新建 view 方法
post_detail; - 新增路由
path('post/<int:pk>/', views.post_detail, name='post_detail'); - 编写 HTML 模板
post_detail.html;
这部分内容可以在下一阶段深入学习时尝试自己完成。
常见问题解答
下面是初学者最容易遇到的一些问题,快看看有没有你也卡住的地方~
❓Q1:运行 runserver 报错,提示 "no such command"
✅ 原因:当前不在项目根目录(即没有 manage.py)
🛠 解决方法:确保你在包含 manage.py 的目录下运行命令
❓Q2:模板文件找不到,提示 "TemplateDoesNotExist"
✅ 原因:
- 模板路径不对;
- 没有正确命名模板目录;
- 没有启用 TEMPLATES 设置;
🛠 解决方法:
- 检查是否建立正确的目录结构
templates/blog/xxx.html - 确保
settings.py中已启用模板引擎(默认是启用的)
❓Q3:数据库迁移失败
✅ 原因:
- 数据库未初始化;
- 表名冲突;
- 模型中有错误;
🛠 解决方法:
- 先删除之前的数据库(db.sqlite3);
- 再重新运行
makemigrations和migrate
❓Q4:如何给网页加上样式?
✅ Django 默认不会帮你写前端样式,但你可以使用:
- 原生 CSS;
- Bootstrap 框架;
- TailwindCSS 等现代 CSS 框架;
只需将 CSS 文件放入 static 文件夹,并在 HTML 模板中引用即可:
{% load static %}
<link rel="stylesheet" href="{% static 'css/style.css' %}">
学习建议:下一步该学什么?
恭喜你完成了第一个 Django 项目!但这只是一个起点,Django 还有很多强大的功能值得你去探索:
🧩 推荐学习路线
模板进阶:
- 学习模板继承(layout)
- 掌握变量过滤器、标签语法等
Form 表单:
- 自动生成 HTML 表单;
- 数据验证;
- 表单提交处理;
REST API:
- 使用 Django REST framework 构建前后端分离接口;
- 与 Vue / React 等前端框架对接;
用户系统:
- 注册、登录、权限控制;
- 使用第三方登录(如 GitHub、微信);
部署上线:
- 将网站发布到公网;
- 使用 Gunicorn + Nginx;
- 使用 Heroku 或 PythonAnywhere 等平台;
📘 推荐学习资料
| 名称 | 类型 | 地址 |
|---|---|---|
| Django 官方文档 | 英文权威文档 | https://docs.djangoproject.com/ |
| 入门中文教程 | 教程合集 | https://djangox.com/django-tutorial-zh/ |
| 《Fluent Python》 | Python 高阶技巧 | 豆瓣评分9分+经典书籍 |
| Bilibili 教学视频 | 视频教学 | 搜索关键词 “Django 零基础” 即可 |
总结
本教程带领你从零开始了解了:
- Django 是什么?为什么值得学?
- 如何搭建开发环境?
- Django 的核心概念有哪些?
- 如何用 Django 搭建一个博客网站?
- 遇到常见问题怎么解决?
- 学完以后还能学什么?
记住一句话:
不怕慢,只怕停。只要坚持每天进步一点点,你离高手就不远了!
🎯 下一步行动建议:
- 把本文项目再重新做一遍;
- 给项目加一个“文章详情页”;
- 把源码上传 GitHub;
- 开始学习 Form 和用户系统;
祝你早日成为一名优秀的 Django 工程师!🚀
如果你喜欢这篇教程,别忘了点赞 + 分享给正在学编程的朋友哟 😄

评论 0