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

Django 是一个用 Python 编写的后端 Web 框架,它的主要作用是帮助开发者快速构建安全、稳定的动态网站。你可以把 Django 想象成一个“搭积木”的工具箱,里面已经为你准备好了很多常用功能(比如用户登录系统、数据库管理等),你只需要按照自己的需求把这些积木组合起来就可以了。
常见的使用场景包括:
- 博客系统
- 电商平台
- 在线教育平台
- 内容管理系统(CMS)
- 管理后台开发
我们今天的目标就是使用 Django 创建一个简单的博客网站,让你快速上手!
环境准备:安装 Python 和 Django

在开始写代码之前,我们需要准备好开发环境。以下是详细步骤:
步骤1:安装 Python
Django 基于 Python 运行,所以首先需要确保你的电脑上已经安装了 Python。推荐使用 Python 3.8~3.12 版本。
打开终端或命令提示符,输入以下命令查看是否已安装 Python:
python --version
如果你看到类似 Python 3.10.4 的输出,说明已经安装了 Python。
如果没有,请前往官网下载安装包:https://www.python.org/downloads/
安装时记得勾选 "Add to PATH"。
步骤2:安装 Django
在确认 Python 安装成功后,我们可以使用 pip 来安装 Django:
pip install django
等待安装完成后,可以运行下面的命令验证是否安装成功:
django-admin --version
如果输出版本号(例如 4.2.5),说明安装成功!
步骤3:创建项目目录
建议为每个项目建立独立的文件夹,便于管理。例如我们在桌面上新建一个文件夹:
mkdir mysite
cd mysite
接下来我们将在这个目录下创建我们的第一个 Django 项目。
核心概念:什么是 MVC?什么是 MTV?

在学习 Django 之前,先了解几个基本概念,有助于理解整个框架的工作方式。
1. MVC vs MTV
你可能会听说过 MVC(Model-View-Controller)模式,它是一种经典的软件架构设计方式。Django 使用的是类似的 MTV(Model-Template-View) 模式:
| 英文缩写 | 含义 | 职责 |
|---|---|---|
| Model | 数据模型 | 负责与数据库交互 |
| View | 视图(对应传统 MVC 中的 Controller) | 处理请求并返回响应 |
| Template | 模板 | 负责页面的显示结构和样式 |
简单来说:
- Model = 数据层(表结构)
- View = 逻辑层(业务处理)
- Template = 展示层(HTML 页面)
2. Django 的核心组件
| 组件名 | 功能描述 |
|---|---|
| Project | 整个项目的大容器,包含多个 App |
| App | 功能模块,比如博客、论坛、用户系统等 |
| ORM | 对接数据库的语言,让操作数据库像操作对象一样方便 |
| URL Router | 把浏览器访问的 URL 映射到对应的视图函数 |
| Admin | 自带的后台管理系统 |
我们将在实战中一一讲解这些内容。
实战项目:创建你的第一个 Django 网站
现在我们进入正式开发阶段,一步步创建一个简单的博客网站。
第一步:创建项目
在之前创建的 mysite 目录中,执行以下命令创建 Django 项目:
django-admin startproject blogsite
执行完毕后,会生成如下结构的文件夹:
blogsite/
├── manage.py
└── blogsite/
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
manage.py:项目管理脚本,可以运行服务器、创建 App 等settings.py:配置文件,用于设置数据库、模板路径、静态资源等urls.py:URL 配置,告诉 Django 怎么处理浏览器请求
第二步:启动开发服务器
进入项目目录:
cd blogsite
运行开发服务器:
python manage.py runserver
你会看到类似如下的输出:
Performing system checks...
System check identified no issues (0 silenced).
October 26, 2024 - 15:50:53
Django version 4.2.5, using settings 'blogsite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
现在打开浏览器访问:http://localhost:8000,你应该可以看到 Django 的欢迎页面!
📌新手小贴士:如果提示 “Port 8000 is in use”,可以在运行时换端口:
python manage.py runserver 8080
第三步:创建第一个 App
Django 推荐将不同功能拆分为不同的 App。我们来创建一个名为 blog 的 App:
python manage.py startapp blog
创建完后,目录结构变成这样:
blogsite/
├── blog/ <-- 新增的 App
│ ├── migrations/
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── manage.py
└── blogsite/
└── ...
为了让 Django 认识这个新 App,需要去 settings.py 文件的 INSTALLED_APPS 列表中添加它:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', # 添加这行
]
保存后重启服务器即可生效。
第四步:创建视图函数
现在我们要在 blog 这个 App 中定义一个网页内容。打开 blog/views.py 文件,添加如下内容:
from django.http import HttpResponse
def index(request):
return HttpResponse("这是我的第一个博客页面!")
然后在 blogsite/urls.py 中绑定这个视图到某个网址:
from django.urls import path
from blog import views # 导入视图模块
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.index), # 访问根路径时触发 index 函数
]
现在再次访问 http://localhost:8000,你应该会看到页面上显示:
这是我的第一个博客页面!
第五步:创建模板页面(Template)
我们不想每次都返回纯文本,而是想要好看的网页。这时候就需要用到模板系统。
首先,在 blog 文件夹中新建 templates/blog/ 目录,并在里面新建一个 HTML 文件:
<!-- blog/templates/blog/index.html -->
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>我的博客</title>
</head>
<body>
<h1>欢迎来到我的博客主页!</h1>
<p>这是使用 Django 搭建的第一个页面。</p>
</body>
</html>
修改 views.py,让它渲染模板而不是返回字符串:
from django.shortcuts import render
def index(request):
return render(request, 'blog/index.html')
刷新网页,你现在应该看到了一个新的 HTML 页面!
第六步:创建数据模型(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
接着,我们需要同步数据库:
python manage.py makemigrations
python manage.py migrate
第七步:注册模型到 Admin 后台
Django 提供了一个强大的后台管理系统。打开 blog/admin.py,注册我们的模型:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
现在再运行服务器,并访问 http://localhost:8000/admin
你需要先创建管理员账号:
python manage.py createsuperuser
按照提示填写用户名、邮箱和密码,登录后就可以在后台新增文章了!
第八步:展示文章列表
我们现在来更新模板,让它展示所有文章。
修改 views.py:
from django.shortcuts import render
from .models import Post
def index(request):
posts = Post.objects.all().order_by('-created_at') # 获取全部文章,按时间倒序排序
return render(request, 'blog/index.html', {'posts': posts})
更新模板文件 blog/templates/blog/index.html:
<h1>我的博客</h1>
{% for post in posts %}
<div style="margin-bottom: 20px;">
<h2>{{ post.title }}</h2>
<p>{{ post.content }}</p>
<small>{{ post.created_at }}</small>
</div>
{% empty %}
<p>还没有任何文章。</p>
{% endfor %}
刷新页面,你会看到从数据库读取的文章内容!
常见问题解答(FAQ)
Q1:运行时提示“No module named django”
可能是没有正确安装 Django。请运行:
pip install django
或者使用正确的虚拟环境。
Q2:找不到 templates 文件夹
Django 默认会在 App 的 templates 目录中查找模板文件。确保文件夹名称和路径正确。
Q3:为什么我改了模板但页面没变化?
可能是浏览器缓存。尝试强制刷新页面(Ctrl + F5 或 Cmd + Shift + R)。
Q4:修改了模型后如何更新数据库?
每次修改模型后都要运行两个命令:
python manage.py makemigrations
python manage.py migrate
Q5:为什么无法访问 admin 后台?
检查是否注册了模型;检查是否创建了超级用户账户;检查 urls.py 是否引入了 admin。
学习建议:下一步怎么学?
恭喜你完成了第一个 Django 项目!这只是万里长征第一步,接下来你可以继续深入以下几个方向:
推荐学习路线图:
第一阶段:进阶知识
- 表单处理(Form)
- 用户认证(登录/注册)
- 分页与搜索功能
- REST API 构建(配合 Django REST Framework)
第二阶段:工程化
- 使用 Bootstrap 美化前端
- 搭配 Vue.js 或 React 构建前后端分离项目
- 使用 PostgreSQL 替代 SQLite
- 部署上线(Nginx + Gunicorn)
第三阶段:实战项目
- 开发个人博客完整版
- 实现电商网站
- 制作 CMS 内容管理系统
- 搭建在线课程平台
结语:持续练习是掌握 Django 的关键

Django 不仅是技术框架,更是一种组织项目的方式。随着不断实践,你会发现它极大的提升了开发效率。记住一句话:
“编程不是背知识点,而是通过一次次动手解决问题积累经验。”
希望这篇教程成为你进入 Django 世界的第一盏灯💡。坚持写代码,你一定能成为一名优秀的开发者!

评论 0