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

你有没有想过,一个网站是怎么“造”出来的?在后端开发的世界里,有很多强大的框架可以帮助开发者快速构建功能完善的网站。而 Django 就是这样一个非常受欢迎的 Python Web 框架。
我们可以把 Django 想象成一个“建站的积木套装”。有了它,你可以:
- 快速创建网页
- 管理数据(比如用户信息、文章内容)
- 让不同页面之间能互相链接跳转
- 设置后台管理界面来轻松管理数据
- 实现用户登录/注册功能等常见需求
Django 特别适合做内容驱动型网站,比如博客、论坛、电商平台、CMS(内容管理系统)等等。
这篇文章会带你从零开始,一步步用 Django 搭建你的第一个网站——一个最基础但完整的博客系统。准备好了吗?我们马上开始!
环境准备:搭建你的 Django 开发环境


在开始写代码之前,我们需要先准备好一个干净的编程环境。
1. 安装 Python
首先,请确认你已经在电脑上安装了 Python。
如何检查是否安装了 Python:
打开命令行(Windows 上叫 CMD 或 PowerShell,Mac 上叫 Terminal),输入以下命令:
python --version
或(如果你使用的是 Mac 或 Linux):
python3 --version
如果看到类似 Python 3.9.0 的输出,说明已经安装成功了。
如果没有安装,可以从 https://www.python.org/downloads/ 下载安装包,按提示一步步安装即可。
2. 创建并进入虚拟环境(virtual environment)
为了避免多个项目之间的依赖冲突,建议每个项目都使用独立的虚拟环境。
运行以下命令创建并激活一个虚拟环境:
# 创建虚拟环境
python -m venv myproject_env
# 进入虚拟环境
# Windows:
myproject_env\Scripts\activate
# macOS / Linux:
source myproject_env/bin/activate
你会在命令行前面看到类似 (myproject_env) 的标记,表示你现在在虚拟环境中。
3. 安装 Django
接下来就是安装 Django 了。我们在刚才的虚拟环境中运行以下命令:
pip install django
等待片刻下载完成之后,输入:
django-admin --version
如果输出了一个版本号(例如 4.2.8),说明 Django 已经安装成功了!
✅ 小贴士:每次新建项目前都要记得重新创建和激活一个新的虚拟环境哦!
核心概念:什么是“视图、模板、模型、URL 路由”?
在正式写代码前,我们先认识几个 Django 中最基本也最重要的概念:
| 名词 | 类比解释 | 功能作用 |
|---|---|---|
| 模型 Model | 相当于数据库表格 | 存储网站数据(如文章标题、作者等) |
| 视图 View | 相当于处理逻辑的大脑 | 处理用户请求,决定返回什么内容 |
| 模板 Template | 相当于网页外观的设计稿 | 决定网页显示的效果(HTML 页面) |
| URL 路由 | 相当于地址本 | 告诉 Django 应该让哪个视图来响应哪个网址请求 |
为了让你更直观地理解它们之间的关系,可以这样想象:
🧠 一位访客在浏览器中访问了
/about/这个地址 → URL 路由识别这个地址 → 调用相应的视图函数 → 视图从模型中取出关于网站的信息 → 把这些信息套进模板里生成 HTML 页面 → 返回给访客看到的页面
接下来我们会通过一个简单的博客项目来体验这些模块是如何配合工作的。
实战项目:跟着教程一步步做出你的第一个 Django 网站
我们将一步一步完成一个极简博客系统,包含以下几个功能:
- 显示所有文章列表
- 点击进入文章详情页
- 使用 Django 后台添加新文章
第一步:创建项目和应用
我们先创建一个 Django 项目(可以把它理解为整个网站的容器):
django-admin startproject myblog
cd myblog
项目目录结构如下:
myblog/
├── manage.py # Django 的管理脚本
└── myblog/
├── __init__.py
├── settings.py # 全局配置文件
├── urls.py # 整个网站的路由表
└── wsgi.py
现在我们要创建一个名叫 posts 的应用(Application),用来专门管理博客文章相关的内容:
python manage.py startapp posts
然后需要把这个应用加入到项目的设置中。编辑 myblog/settings.py 文件,在 INSTALLED_APPS 列表末尾加上一行:
INSTALLED_APPS = [
...
'posts', # 添加这一行
]
第二步:定义模型(Model)——创建博客文章的数据结构
打开 posts/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
上面这段代码的意思是:“我要创建一个叫 Post 的数据库表,里面有三个字段:标题、内容和发布时间。”
现在,执行数据库迁移:
python manage.py makemigrations
python manage.py migrate
⚠️ 迁移失败怎么办?请确保你没有拼错类名或字段名;也可以尝试删除 migrations 文件夹后重试。
第三步:注册模型到后台(Admin)——方便手动添加文章
为了让管理员可以通过 Django 提供的后台添加文章,我们需要注册模型。编辑 posts/admin.py:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
然后创建超级用户账号:
python manage.py createsuperuser
按提示输入用户名、邮箱和密码。完成后启动服务器测试一下后台:
python manage.py runserver
打开浏览器访问 http://127.0.0.1:8000/admin/,用刚创建的账号登录进去,点击 “Posts > Add post”,填写一篇文章标题和内容,保存。
✅ 小练习:试着添加两篇文章试试看,确保后台没问题。
第四步:编写视图和模板——展示文章列表和详情
1. 编写视图函数
编辑 posts/views.py:
from django.shortcuts import render, get_object_or_404
from .models import Post
def post_list(request):
posts = Post.objects.all().order_by('-pub_date') # 获取所有文章,按发布时间倒序排列
return render(request, 'posts/post_list.html', {'posts': posts})
def post_detail(request, post_id):
post = get_object_or_404(Post, pk=post_id)
return render(request, 'posts/post_detail.html', {'post': post})
2. 创建模板文件夹与 HTML 模板
在 posts 文件夹下新建一个文件夹叫 templates/posts(注意目录结构要正确),然后在里面创建两个 .html 文件:
post_list.htmlpost_detail.html
posts/templates/posts/post_list.html 内容如下:
<h1>我的博客</h1>
<ul>
{% for post in posts %}
<li><a href="{% url 'post-detail' post.id %}">{{ post.title }}</a></li>
{% endfor %}
</ul>
posts/templates/posts/post_detail.html 内容如下:
<h1>{{ post.title }}</h1>
<p>{{ post.content }}</p>
3. 配置 URL 路由
编辑主项目的 urls.py(myblog/urls.py):
from django.urls import path
from posts import views
urlpatterns = [
path('', views.post_list, name='post-list'),
path('post/<int:post_id>/', views.post_detail, name='post-detail'),
]
现在刷新页面 http://127.0.0.1:8000/,你应该可以看到自己添加的文章列表了!点击文章标题就能进入详情页。
🎉 到此为止,你的第一个完整 Django 博客就完成了!
常见问题:新手容易遇到的问题和解决办法
以下是初学者常见的几个问题及对应的解决方法:
❓ Q1:页面报错 404 是怎么回事?
可能原因:
- 输入的 URL 地址不正确
- 对应的视图或模板没写好
- URL 配置错误
解决办法:
- 检查
urls.py是否正确写了路径和对应函数 - 查看控制台(终端)是否有错误提示,复制关键信息去搜索
- 用
get_object_or_404()方法代替直接查询,避免程序崩溃
❓ Q2:模板加载失败?
可能原因:
- 模板文件名字拼写错误
- 模板没有放在正确的目录结构下(应该是
app_name/templates/app_name/xxx.html)
解决办法:
- 检查模板路径是否正确
- 查看 Django 日志中的模板路径加载提示
❓ Q3:数据库迁移失败怎么办?
可能原因:
- 模型有语法错误
- 数据库迁移文件未正确更新
解决办法:
- 删除
migrations文件夹下的除__init__.py外所有文件 - 重新运行
makemigrations和migrate
❓ Q4:静态文件(CSS/JS/图片)无法加载?
可能原因:
- 没有配置静态文件路径
- 没有运行收集命令(生产环境时才需要)
解决办法:
- 在
settings.py中添加静态文件设置 - 开发环境下 Django 自带静态服务,确保路径正确
学习建议:下一步的学习路径推荐
恭喜你完成了你的第一个 Django 项目!这只是学习旅程的开始,下面是一些推荐继续学习的方向:
✅ 推荐学习路线
深入了解模型高级用法
学习如何建立多对一、多对多关系,自定义模型 Manager,实现数据查询过滤等。掌握表单 Form 使用
不再只靠后台录入数据,学会让用户通过网页表单提交数据。美化网页前端 + Bootstrap
学习 HTML/CSS 基础知识,结合 Bootstrap 框架打造漂亮网站。用户认证系统
加入登录注册功能,保护部分内容不让未登录用户访问。部署上线
学习用 PythonAnywhere、Heroku 或 VPS 主机把你的网站发布出去。扩展实战项目
尝试做一个个人主页、论坛系统、电商后台等进阶项目。
结语
学习编程就像搭积木,从最基础的一块一块开始,慢慢堆砌出属于自己的作品。Django 作为一款成熟且社区活跃的 Python 框架,非常适合初学者入门。
只要你不害怕动手敲代码,坚持每天进步一点点,你也能写出漂亮的网站来!
如果你在过程中有任何问题,欢迎留言交流。祝你学习顺利,早日成为全栈开发者 😎
📌 附录:项目源码文件结构参考
myblog/
├── manage.py
├── myblog/
│ ├── settings.py
│ └── urls.py
└── posts/
├── models.py
├── views.py
├── urls.py (可选,建议后期拆分)
└── templates/
└── posts/
├── post_list.html
└── post_detail.html

评论 0