Django入门教程:搭建你的第一个Python网站
大家好!我是小张,一名211高校计算机专业的研二学生。在我的技术博客里,我经常分享一些实用的开发经验,因为我自己当初学Django的时候踩过太多坑——文档看不懂、环境配不好、连“视图”和“模板”都分不清……今天这篇教程,就是专门写给完全零基础的朋友,手把手带你用Django搭出人生第一个网站。
你可能会问:“现在不是流行Go语言做后端吗?为什么还要学Django?”
这是个好问题!确实,Go在高并发场景下性能更优,很多大厂也在用。但Django作为Python生态中最成熟的Web框架,开发效率极高、文档完善、社区活跃,特别适合快速构建原型、做毕业设计,甚至直接上线中小型项目。更重要的是——一个完整的Django项目,能成为你简历上亮眼的一笔!
下面,我们就从零开始,一起搭建属于你的第一个网站吧!
一、环境准备:5分钟搞定开发环境
1. 安装Python(推荐3.8+)
确保你已安装Python。打开终端(Windows用CMD或PowerShell,Mac/Linux用Terminal),输入:
python --version
# 或
python3 --version
如果提示“command not found”,请先去 python.org 下载安装。
💡 避坑提示:Windows用户安装时务必勾选 “Add Python to PATH”!
2. 创建虚拟环境(强烈推荐)
虚拟环境能隔离项目依赖,避免包冲突。
# 创建虚拟环境(名字叫 mysite_env)
python -m venv mysite_env
# 激活虚拟环境
# Windows:
mysite_env\Scripts\activate
# Mac/Linux:
source mysite_env/bin/activate
激活后,命令行前会显示 (mysite_env),说明成功了。
3. 安装Django
pip install django
验证是否安装成功:
django-admin --version
# 输出类似 4.2.x 即表示成功
二、核心概念:用大白话讲清楚Django的“骨架”
Django遵循 MVT(Model-View-Template)模式,别被名字吓到,其实很简单:
| 组件 | 作用 | 类比理解 |
|---|---|---|
| Model | 数据模型,定义数据库表结构 | 就像Excel的表头 |
| View | 处理业务逻辑,返回响应内容 | 厨房:接收订单,做菜,上菜 |
| Template | 网页模板,负责页面展示(HTML) | 菜单+摆盘样式 |
📌 注意:Django的“View”其实是传统MVC中的“Controller”,这点容易混淆,记住就行。
此外还有两个关键概念:
- Project(项目):整个网站的容器,包含多个App。
- App(应用):网站的一个功能模块,比如“博客”、“用户系统”。
✅ 我当初学的时候总搞混Project和App,后来明白:一个电商网站(Project)可以包含商品App、订单App、用户App等。
三、实战项目:创建一个“欢迎页面”网站
我们将创建一个最简单的网站:访问首页,显示“Hello, 欢迎来到我的Django网站!”
步骤1:创建项目
django-admin startproject mysite
cd mysite
此时目录结构如下:
mysite/
manage.py # 项目管理脚本
mysite/ # 项目配置目录(同名子文件夹)
__init__.py
settings.py # 配置文件(数据库、时区等)
urls.py # 主路由文件
asgi.py
wsgi.pt
步骤2:启动开发服务器
python manage.py runserver
看到 Starting development server at http://127.0.0.1:8000/ 就成功了!
打开浏览器访问 http://127.0.0.1:8000,你会看到Django的火箭图标 —— 恭喜,项目跑起来了!
⚠️ 如果端口被占用,可以用
python manage.py runserver 8080换端口。
步骤3:创建一个App
我们的网站需要一个“主页”功能,创建一个叫 pages 的App:
python manage.py startapp pages
目录新增:
pages/
migrations/
__init__.py
admin.py
apps.py
models.py
tests.py
views.py # ← 我们要改这里!
步骤4:注册App
打开 mysite/settings.py,找到 INSTALLED_APPS,添加 'pages':
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
# ... 其他默认项
'pages', # ← 加这一行
]
步骤5:编写视图(View)
编辑 pages/views.py:
from django.http import HttpResponse
def home_view(request):
return HttpResponse("Hello, 欢迎来到我的Django网站!")
步骤6:配置路由(URL)
Django通过URL把请求交给对应的View。
- 在
pages目录下新建urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.home_view, name='home'),
]
- 修改主路由
mysite/urls.py,引入pages的路由:
from django.contrib import admin
from django.urls import path, include # ← 导入 include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('pages.urls')), # ← 包含 pages 的路由
]
步骤7:刷新浏览器!
回到 http://127.0.0.1:8000,你应该看到:
Hello, 欢迎来到我的Django网站!
🎉 恭喜!你的第一个Django网站诞生了!
四、升级一下:用模板(Template)让页面更美观
硬编码HTML不优雅,我们用模板分离逻辑和界面。
1. 创建模板目录
在 pages 目录下新建文件夹:
pages/
templates/
pages/
home.html
2. 编写HTML模板
pages/templates/pages/home.html 内容:
<!DOCTYPE html>
<html>
<head>
<title>我的第一个Django网站</title>
</head>
<body>
<h1>Hello, 欢迎来到我的Django网站!</h1>
<p>当前时间是:{{ current_time }}</p>
</body>
</html>
注意 {{ current_time }} 是Django模板变量,稍后我们会传值进去。
3. 修改视图,使用模板
更新 pages/views.py:
from django.shortcuts import render
from datetime import datetime
def home_view(request):
context = {
'current_time': datetime.now().strftime("%Y-%m-%d %H:%M:%S")
}
return render(request, 'pages/home.html', context)
4. 刷新页面
现在页面不仅有标题,还会显示实时时间!这就是模板的力量。
✅ 性能小贴士:Django模板引擎已经做了缓存优化,对小型网站完全够用。如果未来需要更高性能,可考虑前后端分离 + Vue/React,但初学者不必过早优化。
五、新手常见问题解答(FAQ)
Q1:为什么访问不了127.0.0.1:8000?
- 检查是否运行了
runserver - Windows防火墙可能拦截,尝试关闭临时测试
- 如果用了WSL,需用
runserver 0.0. :8000并访问localhost:8000
Q2:修改代码后页面没更新?
Django开发服务器会自动重载,但有时会卡住。按 Ctrl+C 停止后重新 runserver 即可。
Q3:如何连接数据库?
Django默认用SQLite(文件型数据库),无需额外配置。生产环境才需换MySQL/PostgreSQL。初学者直接用默认即可。
Q4:这个项目能写进简历吗?
当然可以!即使简单,也展示了你掌握:
- Web框架基本使用
- MVC/MVT架构理解
- 模板与视图分离思想
建议后续扩展功能(如留言版、用户登录),形成完整作品集。
六、学习建议 & 下一步路线
你已经迈出了关键一步!接下来我建议:
短期目标(1-2周)
- 学习Django ORM(用Python操作数据库)
- 实现一个“待办事项”列表(增删改查)
- 添加用户认证(Django内置
auth模块超方便!)
中期目标(1个月)
- 部署到云服务器(如阿里云ECS + Nginx + Gunicorn)
- 学习REST API(用Django REST Framework)
- 对比Go的Gin/Echo框架,理解不同语言生态差异
关于Go vs Django
| 场景 | 推荐技术 | 原因 |
|---|---|---|
| 快速原型、学习 | Django | 开发快、文档全、生态成熟 |
| 高并发微服务 | Go | 性能强、内存占用低 |
| 简历多样性 | 两者都学 | 展示你懂多种技术栈 |
💬 我的经验:我在实习面试时,面试官看到我GitHub上有Django项目,直接让我现场讲设计思路——一个完整的小项目,胜过十句“熟悉Python”。
结语
今天我们一起用不到50行代码,搭建了一个真正的Web应用。虽然简单,但它具备了现代Web开发的核心要素:路由、视图、模板、静态资源分离。
记住:所有大神都是从“Hello World”开始的。不要怕简单,重要的是动手做。做完这个教程,马上去扩展它——加个计数器、做个天气查询、接入API……你的简历项目,就从这里起步!
如果你觉得这篇教程有帮助,欢迎关注我的技术博客,我会持续更新更多“从零到上线”的实战教程。下期见!

评论 0