Django入门教程:搭建你的第一个Python网站
作者:一位开源项目维护者 & 后端讲师
写在前面:我当初学Web开发时,被各种框架、术语和配置绕得晕头转向。今天写这篇教程,就是希望你能用最短的时间、最少的弯路,亲手跑起第一个Python网站。
为什么选择 Django?它和 Java 有什么关系?
Django 是一个用 Python 编写的开源 Web 框架,它的口号是 “The web framework for perfectionists with deadlines”(为有截止日期的完美主义者打造的 Web 框架)。简单说,它能让你用 Python 快速构建功能完整的网站,而不用从零开始造轮子。
你可能会问:“我听说 Java 也能做网站,为什么要用 Python + Django?”
这是个好问题!Java 确实广泛用于企业级产品开发(比如银行系统、大型电商后台),但它通常需要更复杂的配置和更多的样板代码。而 Django 的优势在于“开箱即用”:用户认证、管理后台、数据库 ORM、URL 路由等核心功能都已内置。对于初学者或快速验证产品想法的创业者来说,Django 能让你在几小时内就做出一个可运行的原型——这对早期产品迭代至关重要。
✅ 小结:如果你的目标是快速做出一个可用的产品原型,或者想用最简单的方式理解 Web 开发的核心逻辑,Django 是比 Java 更友好的起点。
第一步:环境准备(5 分钟搞定)
我们假设你已经安装了 Python(建议 3.8+)。如果没有,请先去 python.org 下载安装。
1. 创建虚拟环境(强烈推荐!)
虚拟环境能隔离不同项目的依赖,避免“这个项目要 Django 3,那个项目要 Django 4”的冲突。
# 创建名为 mysite 的虚拟环境
python -m venv mysite
# 激活虚拟环境(Windows)
mysite\Scripts\activate
# 激活虚拟环境(macOS / Linux)
source mysite/bin/activate
激活后,命令行前会显示 (mysite),说明你已进入该环境。
2. 安装 Django
pip install django
验证是否安装成功:
django-admin --version
# 输出类似:4.2.7
💡 避坑指南:不要用
sudo pip或直接在系统 Python 中安装!这会导致权限混乱和依赖冲突。
第二步:理解 Django 的核心概念(用大白话解释)
在动手前,先搞懂三个关键角色:
| 组件 | 作用 | 类比 |
|---|---|---|
| Model(模型) | 定义数据结构(如用户、文章) | 数据库的“蓝图” |
| View(视图) | 处理请求并返回响应(如显示首页) | 网站的“逻辑处理器” |
| Template(模板) | HTML 页面(如网页布局) | 网站的“皮肤” |
这三者合起来就是 MVT 模式(Django 版的 MVC)。你不需要死记硬背,跟着下面的例子自然就懂了。
第三步:实战!创建你的第一个网站
我们将做一个极简的“欢迎页”,展示“Hello, Django!”。
步骤 1:创建项目
django-admin startproject mysite .
注意末尾的 .,它表示把项目文件创建在当前目录(而不是新建一个子文件夹)。
此时目录结构如下:
mysite/
├── manage.py
└── mysite/
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
manage.py:Django 的命令行工具(你会经常用它)settings.py:项目配置文件(数据库、时区等)urls.py:网站的“总路由表”
步骤 2:启动开发服务器
python manage.py runserver
看到 Starting development server at http://127.0.0.1:8000/ 就成功了!打开浏览器访问这个地址,你会看到 Django 的火箭发射成功页面 🚀。
⚠️ 常见问题:如果提示端口被占用,可以换端口:
python manage.py runserver 8080
步骤 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("Hello, Django! 欢迎来到你的第一个Python网站!")
这段代码的意思是:当有人访问某个 URL 时,调用 welcome 函数,返回一段文字。
步骤 5:配置 URL 路由
Django 默认不会自动暴露视图,你需要手动绑定 URL。
- 先在
home应用内创建urls.py文件:
# home/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.welcome, name='welcome'),
]
- 再在项目主路由
mysite/urls.py中包含这个应用的路由:
# mysite/urls.py
from django.contrib import admin
from django.urls import path, 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',
# ... 其他默认项
'home', # ← 添加这一行
]
步骤 7:刷新浏览器!
回到 http://127.0.0.1:8000/,现在你应该看到:
Hello, Django! 欢迎来到你的第一个Python网站!
恭喜!你已经完成了第一个 Django 网站。
第四步:进阶一点 —— 使用模板(Template)
纯文本太单调了,我们来加点 HTML。
1. 创建模板目录
在 home 目录下新建 templates/home/ 文件夹:
home/
└── templates/
└── home/
└── welcome.html
✅ Django 默认会在每个应用的
templates/下找模板文件。
2. 编写 HTML 模板
home/templates/home/welcome.html:
<!DOCTYPE html>
<html>
<head>
<title>我的第一个Django网站</title>
</head>
<body>
<h1>Hello, Django!</h1>
<p>这是一个用 <strong>Python</strong> 和 Django 构建的简单产品原型。</p>
<p>对比 Java 的繁琐配置,是不是感觉轻松多了? 😊</p>
</body>
</html>
3. 修改视图以使用模板
更新 home/views.py:
from django.shortcuts import render
def welcome(request):
return render(request, 'home/welcome.html')
render 是 Django 提供的快捷函数,自动加载模板并返回 HTTP 响应。
4. 刷新页面!
现在你的网站有了真正的 HTML 结构。未来你可以在这里加入 CSS、JavaScript,甚至连接数据库。
常见问题解答(FAQ)
Q1:为什么我改了代码,网页没变化?
A:Django 开发服务器默认会自动重载代码,但有时会失效。尝试:
- 关闭服务器(Ctrl+C)
- 重新运行
python manage.py runserver
Q2:出现 “ModuleNotFoundError: No module named 'home'”
A:检查 mysite/settings.py 中是否已将 'home' 加入 INSTALLED_APPS。
Q3:能否用 Django 替代 Java 做企业级产品?
A:可以,但要看场景。Django 适合快速开发、中小规模产品(如 SaaS 工具、内容平台)。超大规模、高并发场景(如支付系统)可能仍需 Java + Spring。不过很多知名产品(如 Instagram、Pinterest)就是用 Django 构建的。
Q4:下一步该学什么?
A:建议按此顺序深入:
- 学习 Model:创建数据库表(如用户、文章)
- 使用 Django Admin:自动生成后台管理系统
- 学习 表单处理:让用户提交数据
- 部署到云服务器(如 Vercel、Railway 或阿里云)
学习建议与避坑指南
- 不要死磕理论:Django 的文档非常友好(docs.djangoproject.com),边做边查效率最高。
- 善用
manage.py:它是你的瑞士军刀。常用命令:python manage.py createsuperuser # 创建管理员账号 python manage.py makemigrations # 生成数据库变更 python manage.py migrate # 应用数据库变更 - 不要过早优化:新手常纠结“要不要用 REST API”“要不要分微服务”。先做出能跑的产品,再考虑架构。
- 和 Java 对比着学:如果你有 Java 背景,可以思考:“在 Spring Boot 中这个功能怎么实现?” 这能加深理解。
结语
今天,你用不到 50 行代码,就搭建了一个真正的 Web 应用。这背后是 Django 对 Python 生态的极致封装,也是它能成为快速产品开发利器的原因。
记住:所有复杂的系统,都始于一个 Hello World。你现在迈出的第一步,可能就是未来某个改变世界的产品的起点。
下一步行动建议:尝试在
welcome.html中加入一个“当前时间”显示(提示:用{{ now }}并在视图中传入{'now': datetime.now()})。动手,才是最好的学习。
祝你编码愉快!

评论 0