从零开始,用Django搭建你的第一个Python网站
大家好,我是一名工作5年的后端开发工程师。这几年带过不少实习生,也给公司新同事做过内部培训。我发现很多初学者在接触 Web 开发时,最容易卡在“第一步”——不是技术太难,而是不知道从哪开始、怎么搭环境、怎么跑起来。
我自己刚开始学后端的时候,也踩过无数坑。比如照着教程敲代码,结果因为 Python 版本不对直接报错;又比如装了 Django 却不知道怎么启动服务器。所以今天,我想写一篇真正“手把手”的 Django 入门教程,让你哪怕完全没碰过编程,也能在30分钟内看到自己的网站跑起来。
顺便说一句:别被标题里的“网站”吓到。我们做的不是淘宝也不是微信,而是一个能显示“Hello, World!”的简单页面——但这是你迈向真实后端开发的第一步。
📌 关键词提前说明
- 后端:指网站中用户看不见的部分,比如处理登录、保存数据、返回网页内容。
- Function Calling:函数调用,是编程中最基础的操作之一,后面我们会频繁用到。
- Java:本文不教 Java,但会对比说明为什么初学者更适合从 Python + Django 开始。
- Moltbot:这不是 Django 的一部分!可能是你看到的某个工具名,但本教程不涉及,放心往下看。
为什么选 Django?而不是 Java 或其他?
很多新人一上来就问:“我该学 Java 还是 Python?” 我的回答通常是:如果你想快速做出一个能跑的网站,选 Python + Django。
| 技术栈 | 学习曲线 | 开发速度 | 适合场景 |
|---|---|---|---|
| Java (Spring) | 较陡 | 中等 | 大型企业系统、高并发 |
| Python (Django) | 平缓 | 极快 | 快速原型、中小型项目 |
| Node.js | 中等 | 快 | 实时应用、API 服务 |
Java 虽然强大,但光是配置 Maven、Tomcat、Spring Boot 就能让新手崩溃。而 Django 自带“电池”(即内置功能),开箱即用,一行命令就能启动服务器。
我当初学后端时,先用 Django 做了三个小项目,才敢碰 Java。先建立信心,再挑战复杂,是更高效的学习路径。
第一步:搭建开发环境(别跳过!)
1. 安装 Python
Django 是基于 Python 的,所以首先要装 Python。建议使用 Python 3.8 或更高版本。
- Windows 用户:去 python.org 下载安装包,记得勾选 “Add to PATH”!
- Mac 用户:推荐用 Homebrew:
brew install python - Linux 用户:一般自带 Python 3,用
python3 --version检查
✅ 验证安装:
python --version
# 或
python3 --version
如果显示类似 Python 3.10.12,说明成功。
💡 避坑提示:不要用 Python 2!它已经在 2020 年停止维护了。
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.7),恭喜你,环境准备完成!
核心概念:Django 是怎么工作的?
Django 遵循 MTV 模式(Model-Template-View),你可以理解为:
- Model(模型):和数据库打交道,定义数据长什么样(比如“用户有用户名和邮箱”)
- Template(模板):网页的 HTML 文件,负责展示内容
- View(视图):连接 Model 和 Template 的“中间人”,处理逻辑
整个流程像这样:
用户访问网址 → Django 找到对应的 View → View 调用 Model 获取数据 → View 渲染 Template → 返回网页给用户
而这个“找到对应 View”的过程,靠的是 URL 路由。
🔍 Function Calling 是什么?
在 View 中,你会写函数(比如def home(request):),当用户访问某个 URL 时,Django 会自动“调用”这个函数——这就是 Function Calling。它是后端响应请求的核心机制。
实战:创建你的第一个 Django 网站
我们来做一个最简单的“欢迎页”。
步骤 1:创建项目
在终端执行(确保虚拟环境已激活):
django-admin startproject mysite
这会生成一个叫 mysite 的文件夹,里面是项目骨架。
目录结构如下:
mysite/
├── manage.py # 管理脚本(启动、迁移等)
└── mysite/
├── __init__.py
├── settings.py # 配置文件(数据库、时区等)
├── urls.py # 主路由文件
└── wsgi.py # 部署用(暂时不用管)
步骤 2:启动开发服务器
进入项目目录:
cd mysite
启动服务器:
python manage.py runserver
你会看到:
Starting development server at http://127.0.0.1:8000/
打开浏览器,访问 http://127.0.0.1:8000,看到火箭图标和“It worked!”页面——恭喜!你的 Django 网站已经跑起来了!
⚠️ 注意:这个服务器只用于开发,不能用于上线!
步骤 3:创建一个应用(App)
Django 项目由多个“应用”组成。比如一个博客网站可能有 blog、user、comment 等应用。
我们创建一个叫 pages 的应用:
python manage.py startapp pages
现在目录多了一个 pages/ 文件夹,里面有:
views.py:写业务逻辑的地方models.py:定义数据模型apps.py:应用配置
步骤 4:编写第一个 View(函数调用来了!)
打开 pages/views.py,输入:
from django.http import HttpResponse
def home(request):
return HttpResponse("Hello, Django! 你的第一个网站上线啦!")
这个 home 函数就是一个 View 函数。当用户访问某个 URL 时,Django 会调用它,并把用户的请求(request)传进去。
步骤 5:配置 URL 路由
现在需要告诉 Django:“当用户访问首页时,调用 pages.views.home”。
有两种方式:
方法 A:直接在主路由中配置(适合简单项目)
编辑 mysite/urls.py:
from django.contrib import admin
from django.urls import path
from pages import views # 导入我们的视图
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.home, name='home'), # 空字符串代表根路径 /
]
方法 B:应用级路由(推荐,便于模块化)
- 在
pages/目录下新建urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
]
- 修改主路由
mysite/urls.py:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('pages.urls')), # 包含 pages 应用的路由
]
✅ 推荐用方法 B!以后每个应用都有自己的
urls.py,项目结构更清晰。
步骤 6:注册应用
Django 不会自动加载你创建的应用,需要手动注册。
打开 mysite/settings.py,找到 INSTALLED_APPS,添加 'pages':
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
# ... 其他默认项
'pages', # <-- 加在这里
]
步骤 7:刷新页面!
回到浏览器,刷新 http://127.0.0.1:8000,你应该看到:
Hello, Django! 你的第一个网站上线啦!
🎉 成功!你刚刚完成了:
- 创建项目
- 编写 View 函数(Function Calling)
- 配置 URL 路由
- 注册应用
这就是一个最简后端服务的完整闭环。
新手常见问题 & 解决方案
Q1:为什么访问页面报 404?
可能原因:
- URL 配置错误(检查
urls.py是否包含路径) - 应用未注册(检查
settings.py的INSTALLED_APPS) - 函数名拼写错误(Python 区分大小写!)
✅ 解决:对照上面步骤逐一检查。
Q2:修改代码后页面没变化?
Django 开发服务器会自动重载,但有时会卡住。
✅ 解决:按 Ctrl + C 停止服务器,重新运行 python manage.py runserver。
Q3:能不能用中文?
可以!但要设置时区和语言。
在 settings.py 中修改:
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
Q4:为什么不用 Moltbot?
Moltbot 并不是 Django 生态的标准工具。可能是某些公司内部的脚手架或自动化工具。作为初学者,先掌握原生 Django 更重要。等你熟悉后再接触这些增强工具也不迟。
下一步学习建议
你已经迈出了关键一步!接下来可以:
学习 Template(模板)
把HttpResponse换成真正的 HTML 页面。Django 有强大的模板引擎,支持变量、循环、继承。尝试 Model(模型)
用models.py定义数据,配合 SQLite(Django 默认数据库)存取信息。了解 Admin 后台
Django 自带一个超好用的管理后台,只需几行代码就能管理数据。
📚 我的学习路径建议:
先做三个小项目:
- 个人博客(练 Model + Template)
- 待办事项列表(练表单 + 数据库)
- 简易论坛(练用户认证 + 关系模型)
每个项目都从零搭建,不要直接抄代码!
结语:后端没那么可怕
很多人觉得“后端”很高深,动不动就要懂分布式、高并发。但其实,所有复杂的系统,都是从一个简单的函数调用开始的。
你今天写的 def home(request):,和支付宝处理支付的函数,在本质上是一样的——都是接收请求、处理逻辑、返回结果。
我当初就是从这样一个“Hello World”开始,一步步走到今天的。希望这篇教程能帮你跨过最初的门槛。
记住:写代码不怕慢,就怕不动手。现在就去终端敲下 django-admin startproject 吧!
如果你觉得这篇文章对你有帮助,欢迎分享给同样想学后端的朋友。有问题也可以留言,我会尽力解答。

评论 0