Django入门教程:搭建你的第一个Python网站
大家好,我是B站的一名技术UP主,同时也是某大厂的后端开发工程师。过去三年里,我用Django做过不少项目,从内部管理系统到对外API服务,它一直是我的主力框架之一。
为什么我要写这篇教程?
因为我自己当初学Django的时候,踩过太多坑了!文档看起来很全,但对零基础的新手来说,很多概念像“视图”、“模型”、“URL路由”这些词,根本不知道它们在说什么。所以今天,我想用最简单的方式,带你从零开始,亲手搭出一个能跑起来的Python网站。
💡 一句话理解Django:
Django 是一个用 Python 写的“网站快速开发工具包”。它帮你把重复、繁琐的工作(比如用户登录、数据库操作)都封装好了,你只需要专注写自己的业务逻辑。
一、准备工作:装好你的“工具箱”
在开始写代码前,我们需要先准备好开发环境。就像盖房子要先有砖头和水泥一样,写网站也需要一套合适的工具。
1. 安装 Python
Django 是基于 Python 的,所以第一步是安装 Python。
- 推荐版本:Python 3.8 ~ 3.12(目前主流版本)
- 检查是否已安装:打开终端(Windows 按
Win+R输入cmd,Mac/Linux 打开 Terminal),输入:
如果显示类似python --versionPython 3.10.12,说明已经装好了。如果没有,请去 https://www.python.org/downloads/ 下载安装。
✅ 小贴士:安装时记得勾选 “Add Python to PATH”,否则后面命令会报错!
2. 创建虚拟环境(强烈推荐!)
虚拟环境就像一个“独立的沙盒”,让你的项目依赖不会和其他项目冲突。
# 创建一个叫 mysite 的虚拟环境
python -m venv mysite
# 激活虚拟环境
# Windows:
mysite\Scripts\activate
# Mac/Linux:
source mysite/bin/activate
激活后,命令行前面会出现 (mysite),说明你已经进入这个独立环境了。
3. 安装 Django
在虚拟环境中执行:
pip install django
安装完成后,验证一下:
django-admin --version
如果看到版本号(比如 4.2.7),恭喜你,Django 已就位!
⚠️ 避坑指南:不要全局安装 Django!一定要在虚拟环境中安装,避免版本混乱。
二、核心概念:Django 到底是怎么工作的?
别被“框架”这个词吓到。你可以把 Django 想象成一个“自动化的餐厅”:
| 角色 | 对应 Django 组件 | 作用 |
|---|---|---|
| 顾客点单 | 用户浏览器请求 | 发起访问(比如打开首页) |
| 菜单 | URL 配置 | 告诉系统哪个网址对应什么功能 |
| 厨师 | 视图(View) | 处理请求,决定返回什么内容 |
| 食材仓库 | 模型(Model) | 存储和管理数据(比如用户信息) |
| 上菜盘子 | 模板(Template) | 把内容渲染成 HTML 网页 |
现在,我们重点理解三个最基础的概念:
1. 项目(Project) vs 应用(App)
- 项目(Project):整个网站的容器,包含配置文件、多个应用等。
- 应用(App):网站的一个功能模块。比如一个博客网站可能有
blog应用(发文章)、accounts应用(用户登录)。
🌰 我当初学的时候总搞混这两个概念。记住:一个项目可以包含多个应用,但一个应用通常只做一件事。
2. MTV 架构(Django 版 MVC)
Django 采用 MTV 模式:
- M(Model):数据结构,和数据库打交道
- T(Template):网页模板,负责展示
- V(View):逻辑处理,连接 M 和 T
这比传统的 MVC 更清晰,尤其适合 Web 开发。
三、实战:5分钟创建你的第一个网站!
现在,让我们动手做一个最简单的“Hello World”网站。
步骤 1:创建 Django 项目
在终端中(确保虚拟环境已激活),运行:
django-admin startproject mysite .
注意最后有个
.,表示在当前目录创建,避免多一层文件夹。
你会看到生成了这些文件:
mysite/
manage.py
mysite/
__init__.py
settings.py ← 项目配置
urls.py ← 主路由文件
asgi.py
wsgi.py
步骤 2:启动开发服务器
python manage.py runserver
看到 Starting development server at http://127.0.0.1:8000/ 就成功了!
打开浏览器,访问 http://127.0.0.1:8000,你会看到经典的 Django 火箭页面 🚀。
🔒 安全提示:这个服务器只用于开发!不要用它部署上线。
步骤 3:创建一个应用(App)
我们要做一个“欢迎页面”,所以新建一个叫 home 的应用:
python manage.py startapp home
生成的 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 网站!")
这个函数的意思是:当有人访问某个网址时,返回一段文字。
步骤 5:配置 URL 路由
现在要把网址 /(首页)指向这个 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 # ← 别忘了 import 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 网站!
🎉 恭喜!你已经成功搭建了第一个 Django 网站!
四、新手常见问题 & 解决方案
我在 B站评论区经常看到这些问题,这里一次性解答:
❓ 问题1:command not found: django-admin
原因:Django 没装好,或者没在虚拟环境中。
解决:
- 确保执行了
pip install django - 确保虚拟环境已激活(命令行有
(venv)前缀)
❓ 问题2:访问页面显示 404 或 500 错误
可能原因:
- URL 配置写错了(比如漏了
include) - 视图函数没返回
HttpResponse - 应用没在
settings.py中注册
排查步骤:
- 检查
urls.py路径是否正确 - 确认
views.py函数有return - 查看终端是否有红色错误日志
❓ 问题3:中文显示乱码
Django 默认支持 UTF-8,但如果你在 HttpResponse 里写中文,建议明确指定:
return HttpResponse("你好", content_type="text/html; charset=utf-8")
不过更推荐用模板(后面会讲),天然支持中文。
❓ 问题4:每次改代码都要重启服务器?
不用!Django 开发服务器会自动重载。只要保存 .py 文件,刷新浏览器就能看到效果(除了改 settings.py 需要手动重启)。
五、下一步学习建议
你已经迈出了最重要的一步!接下来,我建议按这个顺序深入:
| 阶段 | 学习内容 | 推荐实践 |
|---|---|---|
| 初级 | 使用模板(Template)渲染 HTML 页面 | 做一个静态个人主页 |
| 中级 | 使用模型(Model)连接数据库 | 实现一个留言本(用户可提交留言) |
| 高级 | 用户认证、表单处理、Admin 后台 | 做一个带登录的博客系统 |
📚 推荐资源:
- 官方教程(Django 官方文档 - 编写你的第一个 Django 应用)
- 我的 B 站系列视频:《Django 从入门到部署》
结语
回想起我当初第一次看到 Hello World 在浏览器里出现的那一刻,真的超有成就感!Django 虽然看起来组件多,但只要你理解了“请求 → 路由 → 视图 → 返回”这个主线,后面就顺了。
记住:编程不是背概念,而是动手做。哪怕只是改一行代码、刷新一次页面,都是进步。
如果你觉得这篇教程有帮助,欢迎点赞收藏,也欢迎来 B 站找我交流~ 下期我们讲“如何用 Django 模板做出漂亮的网页”!
✨ 最后一句鼓励:每个大神,都是从
Hello World开始的。你,也可以!

评论 0