Django入门教程:搭建你的第一个Python网站
大家好,我是小林,一名211高校计算机专业的研究生。平时除了做科研,我还特别喜欢写技术博客,帮助刚入门的学弟学妹们少走弯路。今天这篇教程,就是源于我当初第一次接触Web开发时的困惑——面对一堆框架、术语和配置,完全不知道从哪下手。
我当初学的时候,花了整整一周才跑通一个“Hello World”网页,还被各种环境问题搞得焦头烂额。所以今天,我想用最简单、最安全的方式,带你一步步搭建属于你的第一个Python网站。全程手把手,零基础也能跟上!
为什么选择Django?
Django 是一个用 Python 编写的高级 Web 框架,它“自带电池”(batteries-included),意味着很多功能(比如用户登录、后台管理)都帮你写好了。相比 Java 的 Spring Boot 或 Go 的 Gin 等框架,Django 对新手更友好,代码量少,学习曲线平缓。
一、Django 是什么?能做什么?
简单来说,Django 是一个帮你快速构建网站的工具箱。你可以用它做:
- 个人博客
- 电商网站
- 后台管理系统
- API 接口服务
📌 对比一下其他语言的主流框架:
语言 主流 Web 框架 特点 Python Django, Flask Django 功能全,适合快速开发;Flask 更轻量 Java Spring Boot 企业级强大,但配置复杂,学习成本高 Go Gin, Echo 性能极高,并发强,但生态不如 Python 成熟 如果你是零基础,又想快速做出一个能用的网站,Django 是最佳起点。
二、环境准备:5分钟搞定开发环境
⚠️ 安全提示:不要直接在系统全局安装 Python 包!建议使用虚拟环境,避免污染系统环境。
步骤1:安装 Python(3.7+)
- Windows / macOS:去 python.org 下载安装
- Linux:通常已预装,运行
python3 --version检查版本
确保安装时勾选 “Add to PATH”(Windows)。
步骤2:创建虚拟环境(强烈推荐!)
打开终端(命令提示符 / Terminal),执行:
# 创建项目文件夹
mkdir mysite
cd mysite
# 创建虚拟环境(Python 3.3+ 内置 venv)
python -m venv venv
# 激活虚拟环境
# Windows:
venv\Scripts\activate
# macOS / Linux:
source venv/bin/activate
激活后,命令行前会显示 (venv),说明你已进入安全沙箱。
步骤3:安装 Django
在虚拟环境中运行:
pip install django
验证是否安装成功:
django-admin --version
# 输出类似:4.2.7
✅ 恭喜!你的开发环境已准备就绪。
三、核心概念:用大白话解释 Django
Django 遵循 MVT 模式(Model-View-Template),你可以理解为:
| 组件 | 作用 | 类比 |
|---|---|---|
| Model | 数据结构(如用户、文章) | 数据库的“设计图纸” |
| View | 处理请求并返回响应 | 网站的“大脑”,决定显示什么 |
| Template | 网页的 HTML 文件 | 网站的“皮肤”,负责长什么样 |
💡 我当初混淆了 View 和 Template,以为 View 是页面。其实 View 是 Python 函数,Template 才是 HTML!
四、实战:搭建你的第一个网站
我们将做一个最简单的“欢迎页面”网站,只需 5 步。
第1步:创建 Django 项目
在激活的虚拟环境中运行:
django-admin startproject mysite .
注意末尾有个 .,表示在当前目录创建项目(避免多一层文件夹)。
你会看到以下结构:
mysite/
├── manage.py
├── mysite/
│ ├── __init__.py
│ ├── settings.py # 配置文件
│ ├── urls.py # 网站路由总入口
│ └── wsgi.py
第2步:启动开发服务器
python manage.py runserver
看到 Starting development server at http://127.0.0.1:8000/ 就成功了!
🔒 安全提醒:
runserver仅用于开发!绝对不要在生产环境使用它。
打开浏览器访问 http://127.0.0.1:8000,你会看到火箭图标 —— 这是 Django 的欢迎页!
第3步:创建一个应用(App)
Django 项目由多个“应用”组成(比如用户系统、博客系统)。我们创建一个叫 home 的应用:
python manage.py startapp home
目录结构新增:
home/
├── migrations/
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── tests.py
└── views.py # ← 我们要改这里!
第4步:编写视图(View)
编辑 home/views.py:
from django.http import HttpResponse
def welcome(request):
return HttpResponse("你好,世界!这是我的第一个Django网站!")
这个函数接收一个 request(用户请求),返回一个 HttpResponse(网页内容)。
第5步:配置 URL 路由
现在需要告诉 Django:当用户访问首页时,调用 welcome 函数。
第一步:在 home 目录下新建 urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.welcome, name='welcome'),
]
第二步:修改项目根目录的 mysite/urls.py,引入 home 的路由:
from django.contrib import admin
from django.urls import path, include # ← 注意导入 include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('home.urls')), # ← 添加这一行
]
第6步:注册应用(重要!)
Django 不会自动识别新应用,需手动注册。
打开 mysite/settings.py,找到 INSTALLED_APPS,添加 'home':
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'home', # ← 添加在这里
]
第7步:重启服务器,查看效果
按 Ctrl+C 停止服务器,重新运行:
python manage.py runserver
刷新浏览器,你应该看到:
你好,世界!这是我的第一个Django网站!
🎉 恭喜!你已经成功搭建了第一个 Django 网站!
五、常见问题解答(FAQ)
Q1:为什么访问不了 8000 端口?
- 检查是否运行了
runserver - Windows 防火墙可能拦截,临时关闭测试
- 如果提示端口被占用,换端口:
python manage.py runserver 8080
Q2:修改代码后页面没更新?
Django 开发服务器默认自动重载,但有时会失效。尝试:
- 保存文件后手动刷新浏览器
- 重启
runserver
Q3:出现 “ModuleNotFoundError”?
- 确保你激活了虚拟环境
- 确保在项目根目录运行命令(有
manage.py的目录)
Q4:和 Java/Go 比,Django 性能差吗?
Django 是同步框架,单机性能确实不如 Go 的 Gin。但对新手项目(日活 < 1万),性能完全够用。而且 Django 开发速度快,能让你专注业务逻辑。等你熟悉后,再根据需求选择 Java(高稳定)或 Go(高并发)也不迟。
六、下一步学习建议
你已经迈出了关键一步!接下来可以:
- 学习模板系统:把 HTML 写到
.html文件里,而不是硬编码在 Python 中 - 尝试 Model:用
models.py定义数据,自动生成数据库表 - 使用 Django Admin:几行代码获得一个功能完整的后台管理系统
- 部署上线:用免费平台(如 Railway、Render)把网站发布到互联网
💡 避坑指南:
- 不要一开始就学“REST API”或“Docker”,先掌握基础 MVC
- 不要照搬网上过时的教程(Django 1.x 和 4.x 差别很大)
- 遇到报错,仔细读错误信息,90% 的问题都能从中找到线索
结语
写这篇教程,是因为我希望你不用像我当初那样,在环境配置上浪费太多时间。Django 是一个充满善意的框架,它希望你专注于创造,而不是折腾工具。
记住:每个大神,都曾卡在“Hello World”。你现在迈出的这一步,未来回头看,就是你程序员生涯的起点。
如果你成功跑通了教程,不妨在评论区留言:“我的第一个Django网站上线啦!” —— 我会为你开心!
继续加油,未来的全栈工程师!🚀

评论 0