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

你是不是听说过“网站开发”这个词,但一直觉得太复杂,不知道从哪里下手?别担心!今天我们就来聊聊一个非常适合初学者的Web开发框架——Django。
Django 是一个用 Python 编写的 后端 Web 框架。简单来说,它可以帮你快速搭建出功能强大的网站后台,比如博客、商城、论坛等等。它的口号是:“The web framework for perfectionists with deadlines.”(为追求完美又赶时间的人设计的网络框架)也就是说,它既强大,又高效!
为什么要学习 Django?
- 📚 入门门槛低:适合编程新手
- ⚡ 开发效率高:很多功能都已经帮你封装好了
- 🧱 结构清晰:使用经典的 MVT(Model-View-Template)结构
- 🔐 安全性好:自带很多安全机制
- 🌍 社区活跃:遇到问题可以轻松找到答案
接下来,我们将一起动手实践,从零开始搭建一个简单的个人博客网站!
环境准备:搭建你的开发环境

在正式开始写代码之前,我们需要准备好开发所需的环境。就像做饭前要准备好锅碗瓢盆一样,编程也需要安装必要的工具。
我们这里主要会用到以下几种软件:
- Python 3.x
- pip(Python 包管理器)
- Django
- 一个代码编辑器(比如 VS Code)
我们一步步来安装这些内容。
第一步:安装 Python
你可以先检查一下自己的电脑有没有安装 Python:
Windows:
按 Win + R,输入 cmd 打开命令行,然后输入:
python --version
如果你看到类似这样输出:
Python 3.10.6
说明已经装好了。如果没有,请去 https://www.python.org/downloads/ 下载安装包并安装。
记得在安装时勾选 “Add Python to PATH”。
macOS 和 Linux:
一般来说系统自带 Python,也可以通过上面的链接下载最新版或使用 Homebrew(macOS)进行安装。
第二步:安装 pip
pip 是用来安装 Python 包的工具。Python 3.4 及以上版本默认自带 pip。你可以通过下面这条命令验证是否安装成功:
pip --version
你会看到类似这样的信息:
pip 23.0.1 from ...
第三步:安装 Django
现在我们可以通过 pip 来安装 Django:
pip install django
安装完成后,输入以下命令检查是否安装成功:
django-admin --version
如果看到类似:
4.2.3
恭喜你!Django 已经安装好了!
第四步:安装 VS Code(可选)
虽然你可以用任何文本编辑器写代码,但我们推荐使用 Visual Studio Code(简称 VS Code),它是一个免费且功能强大的代码编辑器。
官网地址:https://code.visualstudio.com/
安装完成后,你还可以安装一些插件,比如:
- Python 插件(微软官方出品)
- Prettier(自动格式化代码)
- Live Server(方便本地预览网页)
核心概念:理解 Django 的三大支柱

Django 遵循一个叫做 MVT(Model - View - Template) 的架构模式。它是 MVC 模式的一个变体,专门用于 Web 开发。
为了帮助大家更直观地理解这个概念,我们打个比方:
想象你在一个餐馆工作:
| 角色 | 类比 | 功能 |
|---|---|---|
| Model(模型) | 厨师和食材仓库 | 负责处理数据、数据库操作 |
| View(视图) | 厨房里的菜单控制台 | 处理逻辑,决定要显示什么数据 |
| Template(模板) | 顾客看到的菜单 | 展示内容给用户看 |
下面我们分别来认识它们。
Model:数据模型(厨房+食材)
Model 负责与数据库交互。你可以把它理解为定义数据结构的地方,比如我们要建一张“文章”表,每个文章有标题、正文、发布时间等字段。
举个例子,我们想保存博客文章的数据,我们可以创建一个 models.Model 的子类:
# myapp/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)
def __str__(self):
return self.title
这段代码表示我们建立了一个叫 Post 的数据模型,里面包含三个字段:标题、内容和创建时间。
✅ 小提示:
CharField是有限长度的字符串(比如标题)TextField是不限制长度的文本内容DateTimeField是日期时间字段,auto_now_add=True表示自动生成当前时间
View:视图(控制台+厨师的菜谱)
View 是处理请求并返回响应的模块。例如当用户访问 /blog 页面,view 函数会获取所有文章数据,并把它渲染成 HTML 返回给浏览器。
看个例子:
# myapp/views.py
from django.shortcuts import render
from .models import Post
def post_list(request):
posts = Post.objects.all() # 获取所有文章
return render(request, 'blog/post_list.html', {'posts': posts})
这段代码的意思是,当有人访问某个页面的时候(后面我们会配置 URL 映射),会调用这个函数,把所有文章传递过去,然后渲染页面。
Template:模板(菜单)
Template 是负责生成 HTML 内容的部分。它是前端展示的主要部分,通常放在 templates 文件夹中。
假设我们有一个 HTML 模板文件:post_list.html
<!-- blog/post_list.html -->
<h1>我的博客</h1>
<ul>
{% for post in posts %}
<li>
<h2>{{ post.title }}</h2>
<p>{{ post.content }}</p>
<small>{{ post.created_at }}</small>
</li>
{% endfor %}
</ul>
在这个模板中:
{% for %}是循环结构,用来遍历每一篇博客{{ }}是变量插入,会动态替换成对应的内容
实战项目:动手做一个最简单的博客网站

好了,前面的知识我们已经铺垫了足够多。现在让我们一起来做点实际的东西吧!
我们来做个超级简单的博客网站。最终效果就是能看到一个网页,显示几篇博客文章。
🛠️ 项目目标:
- 创建一个 Django 项目
- 创建一个应用 blog
- 添加文章模型
- 显示文章列表页面
第一步:创建 Django 项目
打开终端(或命令行),执行以下命令:
django-admin startproject mysite
这会在当前目录下创建一个名为 mysite 的文件夹,这就是我们的 Django 项目。
进入项目目录:
cd mysite
启动服务器:
python manage.py runserver
默认情况下,Django 会在 http://localhost:8000 启动服务器,你可以打开浏览器访问,看到欢迎页面!
第二步:创建一个 App —— blog
Django 推荐将功能模块化,不同的功能可以放在不同的“App”中。
我们现在创建一个名叫 blog 的 App:
python manage.py startapp blog
此时你会看到项目目录中多了一个 blog/ 文件夹。
接着,我们要把这个 app 注册到项目中。打开 mysite/settings.py 文件,在 INSTALLED_APPS 中添加 'blog':
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', # 添加这一行
]
第三步:创建博客文章模型
还记得我们刚才讲过的 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)
def __str__(self):
return self.title
保存之后,我们需要告诉 Django 这个模型存在,并让数据库为我们创建对应的表格。
运行以下两条命令:
python manage.py makemigrations
python manage.py migrate
这样数据库就准备好了!
第四步:创建管理页面,方便添加文章
Django 自带一个非常方便的后台管理系统,我们可以利用它手动添加一些文章。
首先,创建管理员账户:
python manage.py createsuperuser
根据提示输入用户名、邮箱和密码。
然后注册我们的模型,让后台能看见它。
编辑 blog/admin.py 文件:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
现在,启动服务器:
python manage.py runserver
在浏览器中访问 http://localhost:8000/admin,用你刚刚创建的账号登录,可以看到 Post 模型,点击进去就可以添加文章啦!
第五步:编写视图显示文章列表
我们在前面提到了 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})
第六步:配置 URL 访问路径
为了让用户能访问到我们刚刚写的视图函数,还需要配置 URL。
我们首先在项目的主路由中引入我们的 blog 应用。
打开 mysite/urls.py:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')), # 添加这行
]
因为 blog 还没有自己的 urls.py 文件,我们需要手动创建它:
在 blog/ 目录下新建文件 urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.post_list, name='post_list'),
]
这样我们就配置好了 / 地址对应的页面。
第七步:创建模板文件
最后一步,就是把数据显示出来。我们需要创建一个 HTML 模板。
在 blog/ 文件夹中新建文件夹 templates/blog/,并在其中创建 post_list.html 文件:
<!-- blog/templates/blog/post_list.html -->
<!DOCTYPE html>
<html>
<head>
<title>我的博客</title>
</head>
<body>
<h1>欢迎来到我的博客</h1>
<ul>
{% for post in posts %}
<li>
<h2>{{ post.title }}</h2>
<p>{{ post.content }}</p>
<small>{{ post.created_at }}</small>
<hr />
</li>
{% empty %}
<li>还没有文章哦~</li>
{% endfor %}
</ul>
</body>
</html>
注意模板路径必须是 blog/templates/blog/post_list.html,不然 Django 找不到哦!
最终成果展示
再次运行服务:
python manage.py runserver
访问 http://localhost:8000/,你应该就能看到文章列表啦!
新手常见问题解答

在实践中你可能会遇到一些小问题,别着急,看看这里有没有你想要的答案。
Q1:页面提示 TemplateDoesNotExist,怎么回事?
A: 很可能是模板路径不正确。请确保你在 blog/ 下建立了 templates/blog/post_list.html 文件。
另外还要注意 Django 默认的模板加载方式是按照 apps 的顺序查找模板,所以建议在 settings.py 中加入:
TEMPLATES = [
{
...
'APP_DIRS': True,
...
},
]
Q2:模型修改后怎么办?会不会影响已有数据?
A: 当你修改了 models.py 中的模型结构(如添加字段),需要重新运行:
python manage.py makemigrations
python manage.py migrate
如果已经有数据,可能需要提供默认值,或者使用空值(null=True)避免报错。
Q3:为什么不能访问 admin 后台?
A: 可能原因有两个:
- 没有注册模型,忘记写
admin.site.register(Post) - 数据库未同步(migration 未执行)
可以尝试重新运行 migration:
python manage.py makemigrations
python manage.py migrate
Q4:我应该怎么测试 view 函数是否有错误?
A: 如果 view 函数报错,Django 会直接在浏览器上显示出错信息,比如代码语法错误、模块导入错误、数据库连接失败等。仔细阅读错误信息是解决问题的关键。
学习建议:下一步怎么学?
恭喜你完成了第一个 Django 网站!但这只是刚刚开始。
以下是给你推荐的一些进阶学习方向:
1. 学习静态文件配置(CSS、JS、图片等)
你现在页面看起来很朴素对吧?可以试试加 CSS 文件美化一下界面。
相关知识点:
- 静态文件配置
- static 模板标签
- CDN 引入样式
2. 使用 Bootstrap 快速美化页面
Bootstrap 是一个非常好用的 CSS 框架,可以让你迅速做出好看的网页。
推荐资源:
- Bootstrap 官网
- 在 Django 项目中集成 Bootstrap 教程
3. 练习写更多页面
你可以继续练习:
- 文章详情页(DetailView)
- 关于我页面(About 页面)
- 联系我们页面(Contact 页面)
4. 加入用户登录和评论功能
试着实现:
- 用户注册 / 登录
- 用户发表评论
- 评论审核机制
需要用到的功能:
- Django Forms
- 用户认证(auth 模块)
- 评论模型设计
5. 部署上线你的网站
当你做完项目之后,别忘了发布出去!可以让朋友访问!
推荐平台:
- PythonAnywhere
- Heroku(已关闭)
- Vercel / Railway 配合 PostgreSQL
- 云服务器部署(如阿里云、腾讯云)
学习要点:
- 设置 ALLOWED_HOSTS
- 收集静态文件
- 数据库迁移(比如 SQLite 换成 PostgreSQL)
- 设置 SECRET_KEY 等敏感配置
总结回顾
在本教程中,我们一起完成了以下核心内容:
✅ 了解 Django 是什么,以及它的工作原理
✅ 搭建了 Python + Django 的开发环境
✅ 学习了 MVT 架构的核心组件:Model、View、Template
✅ 一步步完成了一个基础的博客项目
✅ 解决了一些新手常见的问题
✅ 推荐了后续的学习方向
Django 不仅仅适合新手入门,也适合开发大型企业级项目。希望你能坚持下去,写出越来越棒的网站作品!
如果你喜欢这篇文章,不妨收藏起来慢慢消化,有问题欢迎留言,我们一起探讨学习 😄

评论 0