Django入门教程:搭建你的第一个Python网站
大家好!我是一名从培训班走出来的前端开发,但别误会——今天我不是来教前端的。在我刚入行那会儿,公司里前后端分离还没现在这么彻底,老板经常说:“你既然是搞技术的,能不能顺手搭个后台?不用多复杂,能跑就行。”于是我就硬着头皮去学后端,第一次接触的就是 Django。
我当初学的时候,最头疼的不是代码本身,而是那些“理所当然”的术语和跳步操作。比如教程一上来就说“创建项目”,但没告诉你 Python 要装哪个版本,pip 是啥,虚拟环境又是什么鬼……结果折腾半天连 django-admin 都跑不起来。
所以今天,我想用最接地气的方式,带你从零开始,亲手搭建你的第一个 Python 网站。哪怕你完全没碰过后端,甚至对编程只有模糊概念,也能跟着一步步做出来。这篇文章不会堆砌术语,而是聚焦在你能做什么、怎么做、为什么这么做。
一、Django 是什么?能用来干啥?
简单说:Django 是一个用 Python 写的“网站制造机”。
- 它帮你自动处理数据库、用户登录、URL 路由这些麻烦事。
- 你只需要告诉它:“当用户访问
/hello时,显示‘你好世界’”,剩下的框架都给你搞定。 - 很多大公司(比如 Instagram、知乎早期)都用 Django 搭建过系统。
💡 小知识:虽然我是前端出身,但 Django 的模板系统和前端很像——你可以把它理解成“后端版的 HTML + 数据绑定”。
为什么选 Django 而不是 Go 或其他?
| 技术 | 特点 | 适合人群 |
|---|---|---|
| Django (Python) | “开箱即用”,自带管理后台、ORM、用户系统 | 零基础、想快速出效果的新手 |
| Go | 性能高、并发强,但需要自己造轮子 | 有经验、追求高性能的后端开发者 |
| Node.js (JavaScript) | 前端开发者友好,但生态分散 | 已会 JS、想全栈的前端 |
📌 提醒:如果你是前端,可能会听说“现在流行 Go”,但别被带偏节奏。学习顺序比技术潮流更重要。Django 能让你快速理解“网站是怎么工作的”,这才是核心。
二、环境准备:5 分钟搞定开发环境
✅ 目标:让电脑能运行 Django 项目
第 1 步:安装 Python
- 去官网 [https://www.python.org/downloads/](https https://www.python.org/downloads/) 下载 Python 3.8+(推荐 3.10 或 3.11)
- 安装时务必勾选 “Add Python to PATH”(Windows 用户特别注意!)
验证是否成功:
python --version
# 或
python3 --version
看到类似 Python 3.10.12 就说明装好了。
第 2 步:创建虚拟环境(非常重要!)
我当初就是因为没用虚拟环境,把系统包搞乱了,重装了好几次……
虚拟环境就像给你的项目单独建个“小房间”,避免和其他项目的依赖打架。
# 创建一个叫 mysite 的文件夹(项目根目录)
mkdir mysite
cd mysite
# 创建虚拟环境(名字叫 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 有三个核心概念,新手最容易懵:
1. 项目(Project) vs 应用(App)
- 项目(Project):整个网站,比如“我的博客系统”
- 应用(App):网站里的一个功能模块,比如“用户管理”、“文章发布”
👉 一个项目可以包含多个 App。就像一辆车(项目)有引擎、轮胎、空调(App)。
2. MTV 模式(Django 的 MVC)
- M(Model):数据结构,比如“一篇文章有标题、内容、作者”
- T(Template):前端页面,就是 HTML 文件
- V(View):中间人,负责“拿到数据 + 渲染页面”
💡 对比前端:View ≈ Vue 组件的逻辑部分,Template ≈ template 标签,Model ≈ 后端 API 返回的数据结构。
3. URL 路由
用户访问 http://127.0.0.1:8000/hello,Django 会根据你写的规则,找到对应的 View 函数来处理。
四、实战:搭建你的第一个网站
🎯 目标:访问
/hello时,显示“你好,Django!”
步骤 1:创建项目
django-admin startproject mysite .
注意最后那个
.,表示在当前目录创建,避免多一层文件夹。
此时目录结构:
mysite/
├── manage.py
├── mysite/
│ ├── __init__.py
│ ├── settings.py ← 配置文件
│ ├── urls.py ← 主路由文件
│ └── wsgi.py
└── venv/ ← 虚拟环境(你之前建的)
步骤 2:启动开发服务器
python manage.py runserver
打开浏览器,访问 http://127.0.0.1:8000,看到火箭图标就成功了!
🔥 小技巧:按
Ctrl + C可以停止服务器。
步骤 3:创建一个 App
我们要做一个“问候”功能,新建一个 App:
python manage.py startapp hello_app
目录新增:
hello_app/
├── migrations/
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── tests.py
└── views.py ← 我们要改这里!
步骤 4:写 View(视图)
编辑 hello_app/views.py:
from django.http import HttpResponse
def say_hello(request):
return HttpResponse("你好,Django!")
步骤 5:配置 URL 路由
Django 不会自动知道 /hello 对应哪个函数,需要手动告诉它。
第一步:在 hello_app 里创建 urls.py:
# hello_app/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.say_hello, name='hello'),
]
第二步:在主项目 mysite/urls.py 中引入这个 App 的路由:
# mysite/urls.py
from django.contrib import admin
from django.urls import path, include # ← 别忘了 import include
urlpatterns = [
path('admin/', admin.site.urls),
path('hello/', include('hello_app.urls')), # ← 新增这一行
]
🧩 路由匹配流程:
- 用户访问
/hello/- 主
urls.py匹配到path('hello/', ...)- 把请求交给
hello_app/urls.pyhello_app/urls.py中的path('', ...)匹配空路径 → 调用say_hello
步骤 6:注册 App(重要!)
Django 默认不知道你新建的 App,需要在 mysite/settings.py 中注册:
# mysite/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
# ... 其他默认项
'hello_app', # ← 在最后加上这一行
]
步骤 7:测试!
重启服务器(如果之前关了的话):
python manage.py runserver
访问 http://127.0.0.1:8000/hello/,你应该看到:
你好,Django!
🎉 恭喜!你已经做出了第一个 Django 页面!
五、进阶一点:加个前端模板
纯文字太单调,我们改成 HTML 页面。
1. 创建模板文件夹
在 hello_app 下新建:
hello_app/
└── templates/
└── hello.html
2. 写 HTML
hello_app/templates/hello.html:
<!DOCTYPE html>
<html>
<head>
<title>我的第一个 Django 网站</title>
</head>
<body>
<h1>你好,{{ name }}!</h1>
<p>欢迎来到 Django 世界!</p>
</body>
</html>
{{ name }}是 Django 模板语法,相当于变量占位符。
3. 修改 View
from django.shortcuts import render
def say_hello(request):
context = {'name': '小明'}
return render(request, 'hello.html', context)
render会自动去templates文件夹找模板。
4. 访问 /hello/,看到带样式的页面!
六、新手常见问题 & 避坑指南
❌ 问题 1:command not found: django-admin
- 原因:没激活虚拟环境,或者没装 Django
- 解决:先
source venv/bin/activate(macOS/Linux)或venv\Scripts\activate(Windows),再pip install django
❌ 问题 2:页面显示 404
- 检查 URL 是否写对(比如
/hello/最后要有斜杠) - 检查
settings.py是否注册了 App - 检查
urls.py的include是否拼写正确
❌ 问题 3:修改代码后页面没更新
- Django 开发服务器会自动重载,但有时卡住
- 手动
Ctrl + C停止,再重新runserver
❌ 问题 4:中文显示乱码
- 确保 HTML 文件保存为 UTF-8 编码(大多数编辑器默认就是)
- 在 HTML
<head>中加<meta charset="UTF-8">
七、下一步怎么学?给你的学习建议
你已经迈出了最难的第一步!接下来:
1. 学习路径建议
| 阶段 | 学习内容 | 推荐实践 |
|---|---|---|
| 入门 | Model(数据库)、Admin 后台 | 做一个“留言板” |
| 进阶 | 表单处理、用户认证 | 实现注册/登录功能 |
| 综合 | REST API、前后端分离 | 用 Django 做后端,Vue/React 做前端 |
| 运营 | 部署上线(Nginx + Gunicorn) | 把网站放到云服务器上 |
2. 别急着学 Go!
很多新人看到“Go 很火”就转头去学,结果基础没打牢。Django 能让你快速理解 Web 开发全貌,包括:
- 请求-响应模型
- 数据库交互
- 用户会话
- 安全机制(CSRF、XSS 防护)
这些概念在 Go、Node.js 里同样存在,只是实现方式不同。先掌握“道”,再换“术”。
3. 和前端结合
既然你是前端(或对前端感兴趣),可以尝试:
- 用 Django 提供 JSON API(通过
JsonResponse) - 前端用 fetch/Axios 调用
- 实现真正的前后端分离
这样你既能写页面,又能搞定数据,成为“综合型”开发者,在求职或内部转岗时更有优势。
结语
我当初就是靠这样一个小小的“Hello World”网站,打开了后端的大门。后来虽然主要做前端,但因为懂后端,和后端同事沟通顺畅多了,甚至能自己搭工具给运营团队用(比如自动生成报表的内部系统)。
技术没有高低贵贱,能解决问题的就是好技术。Django 不是最酷的,但对新手极其友好。希望这篇教程能帮你少走弯路,早日做出属于自己的网站!
最后提醒:动手!动手!动手! 看十遍不如敲一遍。现在就打开终端,输入
django-admin startproject ...吧!
祝你 coding happy!🚀

评论 0