Django入门教程:搭建你的第一个Python网站
作者注:作为一位维护过多个开源项目的后端工程师,我深知初学者面对新框架时的迷茫。多年前我第一次接触Web开发时,也是从零开始摸索。今天写这篇教程,就是希望用最清晰、最实战的方式,带你迈出Python Web开发的第一步。无论你是否学过Java或其他语言,只要愿意动手,就能成功!
一、Django是什么?为什么选择它?
Django 是一个用 Python 编写的高级Web框架,它的目标是让开发者能快速构建安全、可维护的网站,而无需重复造轮子。
- 它内置了用户认证、数据库管理、后台管理等常用功能
- 遵循“约定优于配置”原则,减少决策负担
- 社区活跃,文档完善,适合初学者和企业级项目
📌 技术分享小贴士:很多初学者会问:“我之前学过Java,还能学Django吗?”
当然可以!虽然Java常用于Spring Boot等后端框架,但Django的MVC(在Django中叫MTV)思想与之相通。你会更容易理解“路由-逻辑-模板”的分离模式。工具只是手段,核心是编程思维。
二、环境准备:5分钟搭建开发环境
1. 安装Python(推荐3.8+)
Django基于Python,所以第一步是确保你有Python环境。
- Windows用户:前往 python.org 下载安装,并勾选 “Add to PATH”
- macOS用户:建议使用
brew install python3 - Linux用户:通常已预装,可用
python3 --version检查
✅ 验证安装:
python --version
# 或
python3 --version
2. 创建虚拟环境(强烈推荐!)
虚拟环境能隔离项目依赖,避免“这个项目要用Django 3,那个要用Django 4”的冲突。
# 创建虚拟环境(名字叫 myenv)
python -m venv myenv
# 激活虚拟环境
# Windows:
myenv\Scripts\activate
# macOS/Linux:
source myenv/bin/activate
激活后,命令行前缀会出现 (myenv),表示你已进入该环境。
3. 安装Django
pip install django
💡 实战经验:我当初学的时候直接全局安装Django,结果后来多个项目依赖冲突,重装系统才解决……别学我!永远用虚拟环境!
验证安装成功:
django-admin --version
# 输出类似:4.2.7
三、核心概念:Django的三大支柱
Django采用 MTV 模式(Model-Template-View),对应传统MVC:
| Django术语 | 作用 | 类比理解 |
|---|---|---|
| Model | 数据结构(如用户、文章) | 相当于数据库的“表格定义” |
| Template | 页面HTML(前端展示) | 就是你看到的网页样子 |
| View | 处理请求并返回响应 | “中间人”,接收请求,查数据,返回页面 |
🧠 举个生活例子:
你想点外卖(发起请求)→ 系统(View)查菜单(Model)→ 把菜单图片(Template)发给你看。
四、实战项目:创建一个“欢迎页”网站
现在,我们一步步创建你的第一个Django网站!
步骤1:创建项目
django-admin startproject mysite
cd mysite
这会生成如下结构:
mysite/
├── manage.py # 命令行工具(启动、迁移等)
└── mysite/ # 项目配置目录
├── __init__.py
├── settings.py # 全局配置(数据库、时区等)
├── urls.py # 主路由文件
└── wsgi.py
步骤2:启动开发服务器
python manage.py runserver
打开浏览器,访问 http://127.0.0.1:8000,你会看到经典的 “The install worked successfully!” 页面!
⚠️ 注意:如果提示端口被占用,可换端口:
python manage.py runserver 8080
步骤3:创建一个应用(App)
Django项目由多个“应用”组成(如用户系统、博客、商城)。我们创建一个叫 hello 的应用:
python manage.py startapp hello
项目结构变为:
mysite/
├── hello/ # 新增的应用
│ ├── views.py # 核心!写业务逻辑的地方
│ ├── models.py # 定义数据模型
│ └── ...
└── mysite/
步骤4:编写视图(View)
编辑 hello/views.py:
from django.http import HttpResponse
def welcome(request):
return HttpResponse("<h1>你好,世界!欢迎来到我的第一个Django网站!</h1>")
步骤5:配置URL路由
Django不会自动暴露视图,你需要告诉它“哪个URL对应哪个函数”。
- 在
hello/目录下新建urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.welcome, name='welcome'),
]
- 修改主路由
mysite/urls.py,包含hello的路由:
from django.contrib import admin
from django.urls import path, include # 引入 include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('hello.urls')), # 添加这一行
]
步骤6:注册应用(重要!)
Django需要知道你创建了新应用。打开 mysite/settings.py,找到 INSTALLED_APPS,添加 'hello':
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
# ... 其他默认项
'hello', # ← 添加这行
]
步骤7:刷新页面!
回到浏览器刷新 http://127.0.0.1:8000,你应该看到:
你好,世界!欢迎来到我的第一个Django网站!
🎉 恭喜!你已经完成了第一个Django网站!
五、新手常见问题解答(FAQ)
Q1:为什么页面显示“Page not found (404)”?
- 检查
urls.py是否正确配置 - 确认应用已添加到
settings.py的INSTALLED_APPS - 确保视图函数返回的是
HttpResponse对象
Q2:修改代码后页面没变化?
Django开发服务器会自动重载,但有时需要手动重启。按 Ctrl+C 停止服务,再运行 python manage.py runserver。
Q3:能用Java开发Django吗?
不能。Django是 纯Python框架。但如果你有Java背景,理解Web开发概念(如HTTP、REST、MVC)会更快。工具不同,思想相通。
Q4:Django和Flask有什么区别?
| 框架 | 特点 | 适合场景 |
|---|---|---|
| Django | “全功能”,开箱即用 | 快速开发完整网站(如博客、电商) |
| Flask | “微框架”,灵活轻量 | 小型API、学习原理、高度定制 |
💡 建议:零基础首选Django,它帮你做了很多正确的事。
六、下一步学习建议
你已经迈出了关键一步!接下来可以:
- 学习模板系统:把HTML写进
.html文件,用render()渲染 - 连接数据库:Django默认用SQLite,试试创建一个“留言板”
- 使用Admin后台:Django自带强大后台,只需几行代码就能管理数据
- 部署上线:用免费平台(如PythonAnywhere、Vercel)让你的网站被全世界访问
🔧 避坑指南:
- 不要一开始就追求“完美架构”
- 先跑通,再优化
- 遇到报错,仔细读错误信息(90%的问题答案就在里面!)
结语
通过这篇教程,你不仅搭建了第一个Python网站,更重要的是理解了Web开发的基本流程:请求 → 处理 → 响应。Django的强大之处在于,它把这些复杂过程封装得极其简单。
我当初学的时候,也是从一行
HttpResponse开始的。今天你能做到,明天就能做出更酷的东西!
技术分享的价值,在于让更多人少走弯路。如果你觉得这篇教程有帮助,不妨动手实践,并分享给其他初学者。编程之路,我们一起前行!
✨ 行动号召:现在就打开终端,输入
django-admin startproject—— 你的Web开发之旅,正式启航!

评论 0