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

在学习任何新技能之前,了解它是谁、它能做什么,以及你为什么需要它非常重要。今天我们要介绍的这个技术叫做 Django,它是用 Python 编写的开源 Web 框架。
为什么选择 Django?
- 高效快速开发:Django 提供了许多内置功能(比如用户认证、后台管理等),让你不需要“重复造轮子”。
- 安全性强:Django 内置了防止常见攻击(如 SQL 注入、跨站脚本攻击)的功能。
- 易于扩展:无论你想做的是一个博客系统、电商网站还是企业管理系统,Django 都可以轻松应对。
- 社区活跃:全球有大量的开发者在使用和维护 Django,你遇到问题时总能找到答案。
简单说:Django 是帮你构建网页的工具箱!
你可以把它想象成一套“乐高积木”,里面有各种已经搭好的模块(比如登录框、评论区等)。只要你掌握了方法,就可以用这些模块快速拼出自己的网站。
环境准备:安装 Python 和 Django

在开始写代码前,我们需要先准备好开发环境。这一步是新手最容易卡住的地方之一,所以我会尽量一步步说明清楚。
第一步:安装 Python
Django 是用 Python 编写的,所以我们必须先装好 Python。
如何检查是否已安装 Python?
打开终端(Windows 用户可以用 cmd 或 PowerShell,Mac 用户用 Terminal,Linux 用户就懂了 😊)
输入以下命令:
python --version
如果返回类似 Python 3.x.x 的结果,恭喜你已经有了。否则请到官网 https://www.python.org/downloads/ 下载安装包,并安装。
⚠️ 注意:请下载最新的 Python 3 版本。
第二步:安装虚拟环境(推荐)
为了避免不同项目之间依赖冲突,建议我们为每个 Django 项目创建一个“隔离房间”——也就是虚拟环境(virtual environment)。
安装 pip(Python 包管理工具)
如果你还没安装 pip(通常 Python 自带),可以通过下面的方法安装:
Windows:
python -m ensurepip --default-pipMac/Linux:
sudo apt-get install python3-pip # Ubuntu/Debian brew install python@3.x # Mac with Homebrew
创建虚拟环境
python -m venv myenv
这会在当前目录下创建一个名为 myenv 的虚拟环境文件夹。
启动虚拟环境
Windows:
myenv\Scripts\activateMac/Linux:
source myenv/bin/activate
一旦激活,你会看到终端前面有个 (myenv) 的提示符。
第三步:安装 Django
现在,我们可以安装 Django 了。
pip install django
等待几分钟后,输入以下命令确认是否安装成功:
django-admin --version
出现类似 4.2.1 的版本号表示安装成功!
核心概念:理解 Django 的结构
在开始写网站之前,我们先来了解一下 Django 的基本结构。Django 使用的是 MTV 设计模式,这是对 MVC 架构的一种变体。
MTV 分别代表什么?
| 名称 | 全称 | 中文解释 | 职责 |
|---|---|---|---|
| M | Model | 数据模型 | 和数据库打交道,定义数据结构 |
| T | Template | 模板 | 控制页面外观(HTML 页面) |
| V | View | 视图 | 处理逻辑,决定展示什么内容 |
听起来有点抽象?没关系,我们会用项目来实践这些概念。
常见术语简要说明
- 项目(Project):整个网站的大框架,包含多个应用。
- 应用(App):具体功能模块,比如博客、留言、用户中心等。
- URL路由(Routing):告诉 Django,当访问某个网址时,应该执行哪段代码。
- 静态文件(Static Files):CSS、JavaScript、图片等资源。
- 模板(Template):HTML 文件中嵌入动态数据,实现个性化展示。
实战项目:动手搭建一个简单的个人博客网站
我们将从零开始,创建一个可以显示文章列表的博客网站。完成后效果如下:
博客首页:
- 显示文章标题
- 每篇文章有发布时间
- 可点击进入详情页面
第一步:创建 Django 项目
激活虚拟环境后,运行下面的命令:
django-admin startproject myblog
这就生成了一个叫 myblog 的项目文件夹。进入该文件夹:
cd myblog
项目目录结构如下:
myblog/
├── manage.py # Django 管理脚本
└── myblog/
├── __init__.py
├── settings.py # 配置文件
├── urls.py # 总路由配置
└── wsgi.py # 服务器接口模块
第二步:启动本地服务器测试
执行下面的命令:
python manage.py runserver
在浏览器中访问 http://127.0.0.1:8000/,你应该能看到 Django 的欢迎页面。
第三步:创建 blog 应用
Django 推荐每个功能模块作为一个独立应用。我们创建一个叫 blog 的应用:
python manage.py startapp blog
此时你会发现项目多了一个 blog/ 目录:
blog/
├── migrations/ # 数据库迁移脚本
├── __init__.py
├── admin.py # 后台管理模块
├── apps.py
├── models.py # 数据模型
├── tests.py # 单元测试
└── views.py # 视图函数
接下来,我们要告诉 Django 这个应用的存在。
打开 myblog/settings.py,找到 INSTALLED_APPS 列表,在最后加上:
'blog',
第四步:设计数据模型(Model)
我们需要定义博客文章的数据结构。打开 blog/models.py,修改为如下内容:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200) # 标题字段
content = models.TextField() # 内容字段
pub_date = models.DateTimeField('发布日期') # 发布时间字段
def __str__(self):
return self.title
保存之后,我们还要让 Django 把这些模型应用到数据库中。
运行以下两条命令:
python manage.py makemigrations blog
python manage.py migrate
📝 解释:
makemigrations:告诉 Django 我们做了哪些模型变更。migrate:把这些变更同步到数据库中。
第五步:注册模型到后台管理
为了让管理员方便添加文章,我们可以在 Django 自带的后台管理界面中注册我们的模型。
打开 blog/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” 按钮新增两篇测试文章吧!
第六步:编写视图(View)
现在我们要把数据展示出来。
打开 blog/views.py,添加如下代码:
from django.shortcuts import render
from .models import Post
def post_list(request):
posts = Post.objects.all().order_by('-pub_date') # 按发布时间倒序排列
return render(request, 'blog/post_list.html', {'posts': posts})
这段代码的意思是:“取出所有文章,按时间最新排前面,然后渲染到 HTML 页面上”。
第七步:设置 URL 路由
打开 blog/urls.py,如果没有该文件,请手动创建它,并写入以下内容:
from django.urls import path
from . import views
urlpatterns = [
path('', 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('blog/', include('blog.urls')), # 新增这一行
]
现在你可以通过 http://127.0.0.1:8000/blog/ 访问博客页面了!
但目前还不能正常显示内容,因为我们还没有写 HTML 模板。
第八步:编写模板(Template)
在项目根目录创建一个 templates 文件夹,用于存放模板文件:
myblog/
├── templates/
│ └── blog/
│ └── post_list.html
...
确保目录结构正确。
编辑 templates/blog/post_list.html,内容如下:
<!DOCTYPE html>
<html>
<head>
<title>我的博客</title>
</head>
<body>
<h1>欢迎来到我的博客!</h1>
{% for post in posts %}
<div style="margin-bottom: 20px;">
<h2>{{ post.title }}</h2>
<p><em>{{ post.pub_date }}</em></p>
<p>{{ post.content|truncatewords:50 }}</p>
</div>
{% empty %}
<p>暂时没有文章。</p>
{% endfor %}
</body>
</html>
刷新页面看看效果吧!
第九步:美化页面(可选)
虽然页面能看,但太素了点。你可以给它加个 CSS 文件:
在 myblog/settings.py 中添加如下内容,启用静态文件支持:
STATIC_URL = '/static/'
在项目根目录创建 static/css/style.css 文件,添加一些样式:
body {
font-family: Arial, sans-serif;
margin: 40px;
background-color: #f4f4f4;
}
h1 {
color: #333;
}
div {
background: white;
padding: 15px;
border-radius: 8px;
}
再修改 post_list.html,在 <head> 中引入 CSS:
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
别忘了加载静态标签:
{% load static %}
<!DOCTYPE html>
<html>
<head>
<title>我的博客</title>
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
</head>
...
重启服务器后,你现在应该能看到更漂亮的页面啦!
常见问题解答(FAQ)
以下是新手在学习过程中常遇到的问题,我整理了一些常见的疑问与解答:
1. Q:运行服务器时报错,提示模块找不到?
A:检查是否激活了虚拟环境,并且安装了所需的包。运行:
pip install -r requirements.txt
若无此文件,尝试重新安装 django:
pip install django
2. Q:更改了模型后,为什么数据库没有更新?
A:每次模型变化后都必须执行:
python manage.py makemigrations
python manage.py migrate
3. Q:网页不生效或没有样式?
A:可能是缓存导致,清空浏览器缓存或者使用隐身窗口重试。另外确认路径是否正确,尤其是静态文件路径。
4. Q:无法访问 admin 后台?
A:确认已创建超级用户 (createsuperuser) 并使用正确的用户名和密码登录。
5. Q:模板文件放在哪里才有效?
A:Django 默认搜索项目下的 templates 文件夹。确保你的 HTML 文件结构与 TEMPLATES 设置一致,特别是 'DIRS': [os.path.join(BASE_DIR, 'templates')]。
学习建议:下一步怎么学?
恭喜你完成了你的第一个 Django 网站!
接下来你可以尝试:
- 给每篇文章添加详情页(DetailView)
- 添加用户评论功能(Form 表单 + 模型)
- 部署你的网站到互联网(Heroku、PythonAnywhere 等平台)
- 使用第三方库(如 Bootstrap)提升前端体验
- 使用 Django REST framework 构建 API 接口
- 学习更多高级主题:用户权限、中间件、缓存、任务队列等
总结
在本篇《Django入门教程:搭建你的第一个Python网站》中,我们一起完成了以下内容:
✅ 安装 Python 和 Django
✅ 理解 Django 的核心概念(MTV 模式)
✅ 创建项目和应用
✅ 操作数据库模型
✅ 编写视图和 URL 路由
✅ 编写 HTML 模板并整合静态资源
✅ 部署后台管理和美化页面
虽然只是一个简单的博客项目,但它为你打开了通向专业后端开发的大门。记住:每一个复杂的网站,最初也只是几个简单的页面!
继续努力,你也可以成为一名优秀的后端开发者 🌟
如果你觉得这篇教程对你有帮助,欢迎点赞、收藏或分享给你的朋友 💡
📌 拓展阅读:
- 官方文档:https://docs.djangoproject.com/en/4.2/
- Django Girls 教程:https://tutorial.djangogirls.org/zh/
- 实战课程推荐:Bilibili / YouTube 上的 Django 开发教程

评论 0