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

你可能听说过Django,它是Python世界中非常流行的Web开发框架之一。简单来说,Django就像是一个“建房工具包”,你可以用它来快速地搭建一个功能齐全的网站或Web应用。
Django 的口号是:“The web framework for perfectionists with deadlines”(为追求完美且时间有限的人设计的 Web 框架)。它的设计目标是让你更轻松、高效地开发复杂的数据驱动型网站,而不用从头做起每个细节。
无论你是想做一个博客系统、电商平台、内容管理系统还是企业级后台管理系统,Django都可以帮助你迅速实现这些功能。
环境准备:一步步搭建你的开发环境

在开始写代码之前,我们先来安装和配置一些必要的开发工具。
1. 安装 Python
Django 是基于 Python 的框架,所以你必须先安装 Python。
- 前往官网 https://www.python.org/downloads/
- 下载最新稳定版本(建议使用 3.9 到 3.11 版本)
- 安装时请勾选 “Add to PATH” 选项
- 安装完成后,在终端输入:
python --version
如果你看到输出类似 Python 3.x.x,说明安装成功了。
✅ 小贴士:Mac 和 Linux 用户可能已经内置了 Python,但推荐使用虚拟环境来管理项目依赖,避免污染全局环境。
2. 创建虚拟环境
虚拟环境是一个独立的空间,用于存放当前项目的依赖包。
在命令行中执行以下命令:
python -m venv myenv
这会在当前目录创建一个名为 myenv 的文件夹,里面就是你的虚拟环境。
激活虚拟环境:
- Windows:
myenv\Scripts\activate
- Mac/Linux:
source myenv/bin/activate
激活后,终端前缀会出现 (myenv) 标志。
3. 安装 Django
现在我们通过 pip 来安装 Django:
pip install django
验证是否安装成功:
django-admin --version
输出如 4.x.x 即表示安装完成。
4. 编辑器推荐
新手推荐使用免费好用的编辑器:VS Code
安装后,可以安装 Python 扩展插件来提升编码效率。
核心概念:Django里的几个关键术语

学任何新东西,首先要理解基本概念。以下是Django开发中最常见的几个核心术语,我会用最通俗的语言来解释它们。
| 名称 | 解释 |
|---|---|
| 项目(Project) | 整个网站的大框架,包含多个应用,就像是一本书的整体结构 |
| 应用(App) | 实现具体功能的小模块,比如“用户登录”、“文章列表”等,相当于书中的章节 |
| URL路由(Routing) | 决定访问哪个地址会跳转到哪个页面 |
| 视图(View) | 处理请求、返回响应的地方,就像客服处理顾客的需求 |
| 模板(Template) | 页面的展示部分,决定了网页长什么样子 |
| 模型(Model) | 数据库表的定义,记录我们要保存的内容 |
实战项目:从零开始搭建一个简单的博客网站
为了让你更直观地了解Django的工作方式,我们将一起动手做一个极简版的博客网站。
项目目标:
- 访问首页可以看到一篇欢迎文章
- 能通过不同链接查看不同的内容页面
第一步:创建项目
打开终端,执行命令:
django-admin startproject myblog
这会创建一个叫 myblog 的文件夹,进入该文件夹:
cd myblog
现在项目结构如下:
myblog/
├── manage.py
└── myblog/
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
第二步:运行服务器看效果
我们先启动默认的Web服务器:
python manage.py runserver
浏览器访问 http://localhost:8000,你会看到“恭喜你!”页面,说明项目搭建好了!
第三步:创建我们的第一个应用
我们要创建一个专门负责文章显示的应用:
python manage.py startapp blog
现在你的项目结构如下:
myblog/
├── blog/ ← 新创建的应用
│ ├── migrations/
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
└── myblog/
├── db.sqlite3
└── manage.py
接下来我们需要把应用注册到项目里,在 myblog/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', # 添加这一行
]
第四步:创建你的第一个页面
打开 blog/views.py,修改内容如下:
from django.http import HttpResponse
def home(request):
return HttpResponse("你好!这是我的第一篇博客文章")
这段代码的意思是:当有人访问 / 这个路径时,就调用这个函数,返回一段文字。
接下来,我们要告诉Django哪个地址对应这个函数。
打开 myblog/urls.py,修改为如下内容:
from django.urls import path
from blog import views
urlpatterns = [
path('', views.home, name='home'),
]
再运行一次服务:
python manage.py runserver
刷新 http://localhost:8000,你会看到:
你好!这是我的第一篇博客文章
🎉 恭喜你,你的第一个Django页面完成了!
第五步:美化页面,使用HTML模板
目前只是纯文本,我们来让它显示得像个网页吧。
1. 创建 templates 文件夹
在 blog 应用根目录下新建一个文件夹 templates/blog/
最终结构应为:
blog/
└── templates/
└── blog/
└── home.html
在 home.html 中编写下面内容:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>我的博客</title>
</head>
<body>
<h1 style="color: blue;">你好!</h1>
<p>这是我的第一篇博客文章。</p>
</body>
</html>
2. 修改视图使用模板
回到 views.py,修改内容为:
from django.shortcuts import render
def home(request):
return render(request, 'blog/home.html')
刷新页面,你会发现样式发生了变化。
更进一步:给网站加多个页面
我们再来加两个页面:关于我 和 联系我们。
1. 写视图函数
继续在 views.py 添加:
def about(request):
return render(request, 'blog/about.html')
def contact(request):
return render(request, 'blog/contact.html')
2. 创建对应的 HTML 模板
在 blog/templates/blog/ 文件夹中分别创建 about.html 和 contact.html:
about.html 示例:
<h1>关于我</h1>
<p>我是小张,一名热爱编程的开发者。</p>
contact.html 示例:
<h1>联系方式</h1>
<ul>
<li>Email: zhang@example.com</li>
<li>微信: hello_django</li>
</ul>
3. 配置 URL 路由
修改 urls.py:
from django.urls import path
from blog import views
urlpatterns = [
path('', views.home, name='home'),
path('about/', views.about, name='about'),
path('contact/', views.contact, name='contact'),
]
现在你可以访问:
常见问题解答(FAQ)
Q1:启动报错,提示端口被占用怎么办?
错误示例:
Error: That port is already in use.
解决方法:
换一个端口启动:
python manage.py runserver 8001
或者终止占用 8000 端口的程序。
Q2:模板找不到?
确保你的模板放在正确的路径中,并检查拼写是否正确。
例如:templates/blog/home.html
还要确认你在设置文件中没有关闭模板加载(Django 2.2+默认已启用)。
Q3:视图函数不执行?
检查视图是否与 URL 正确关联,注意缩进是否正确、是否存在中文字符、函数名称是否一致。
Q4:为什么不能直接在浏览器中看到修改后的代码?
Django服务器有时缓存了内容,重启服务即可生效:
Ctrl + C # 停止服务器
python manage.py runserver
Q5:如何退出虚拟环境?
在终端中输入:
deactivate
学习建议:下一步我可以学什么?
恭喜你完成了第一个完整的Django小项目!接下来你可以沿着这些方向继续学习:
- 数据库操作:学习如何定义数据模型(model),存储文章内容。
- 管理员后台:使用Django自带的Admin系统管理你的网站内容。
- 用户认证系统:实现注册、登录、权限控制等功能。
- 静态资源管理:引入CSS、JavaScript,让网站更美观。
- 部署上线:将网站部署到公网上,让别人也能访问。
- 深入学习REST API开发:学习DRF(Django REST Framework)做接口开发。
推荐的学习资源:
- 📚 官方文档:https://docs.djangoproject.com/zh-hans/4.2/
- 📘 免费书籍《Django Girls 教程》
- 💻 B站/YouTube上搜索“Django实战入门”视频
- 🧠 使用 LeetCode 或 Hackerrank 练手实际项目
总结
通过这篇文章,你已经掌握了Django的基础知识,并亲手搭建了一个简单的博客站点。
记住一句话:“学编程最好的方法就是边学边写。”
不要害怕犯错,每解决一个问题,你就离高手更进一步!
如果你觉得这篇文章对你有帮助,不妨尝试自己再写一个小项目,比如留言版、个人简介页、商品展示网站等等。
有任何问题,欢迎留言交流~
Happy coding! 👨💻👩💻

评论 0