为什么我建议零基础新手从 Django 开始学 Web 开发?
大家好,我是阿哲,一名在一线大厂干了三年后端开发的工程师,平时也在 B站做技术分享。最近收到不少私信问:“完全没接触过编程,想做个自己的网站,该从哪开始?”、“Python 和 Go 到底选哪个?”、“Django 是不是太老了?”
今天这篇教程,就是专门为你——零基础、想快速做出第一个网站的新手量身定制的。我会用最通俗的语言,带你从零搭建一个能跑起来的 Python 网站,并顺带聊聊技术选型、面试常考的问题,甚至和 Go 做个对比。放心,不讲虚的,全是实战。
一、Django 是什么?它能帮你做什么?
简单说:Django 是一个用 Python 写的“网站生成器”。
你不需要从零开始写数据库连接、用户登录、URL 路由这些重复又复杂的代码。Django 已经把这些功能打包好了,你只需要告诉它:“我要一个博客”、“我要一个商品列表”,它就能帮你快速搭出来。
我当初学的时候,最大的困惑是:“为什么不能直接用 Python 打印 HTML?”
后来才明白:真实网站需要处理请求、存数据、防攻击、管理后台……这些 Django 都替你考虑好了。
Django 适合谁?
- ✅ 完全零基础,想快速看到成果
- ✅ 想用 Python 入门 Web 开发
- ✅ 做个人项目、毕业设计、MVP(最小可行产品)
- ❌ 不适合高并发微服务(这时候可能要考虑 Go)
二、环境准备:5 分钟搞定开发环境
别被“环境配置”吓到,现在工具很成熟,跟着做就行。
步骤 1:安装 Python(3.7+)
去官网 https://www.python.org/downloads/ 下载最新版(建议 3.9~3.11),安装时务必勾选 “Add to PATH”!
验证是否成功:
python --version
# 或
python3 --version
步骤 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 组件 | 餐厅角色 | 作用 |
|---|---|---|
urls.py |
迎宾员 | 用户说“我要看菜单”,迎宾员带他去菜单页面 |
views.py |
厨师 | 收到订单后,决定做什么菜(返回什么网页) |
models.py |
仓库管理员 | 管理食材库存(数据库里的数据) |
templates/ |
菜单模板 | 菜的样子长什么样(HTML 页面) |
admin/ |
后台经理 | 老板可以登录后台加新菜、改价格 |
记住这个比喻,后面代码就清晰多了。
四、实战:动手做一个“今日名言”网站
目标:访问 http://127.0.0.1:8000/,看到一句随机名言。
第 1 步:创建项目
django-admin startproject quotesite
cd quotesite
这会生成一个叫 quotesite 的文件夹,里面是基础结构。
第 2 步:创建 App(功能模块)
Django 项目由多个“App”组成,比如博客、用户系统、商品管理。
python manage.py startapp quote
生成 quote 文件夹,我们的功能写在这里。
第 3 步:注册 App
打开 quotesite/settings.py,找到 INSTALLED_APPS,加上 'quote':
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
# ... 其他默认项
'quote', # ← 新增这一行
]
第 4 步:写视图(views.py)
编辑 quote/views.py:
from django.http import HttpResponse
import random
def home(request):
quotes = [
"人生苦短,我用 Python",
"代码写得好,下班下得早",
"不要重复造轮子"
]
selected = random.choice(quotes)
return HttpResponse(f"<h1>{selected}</h1>")
第 5 步:配置路由(urls.py)
先在 quote 文件夹下新建 urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
]
再修改主路由 quotesite/urls.py:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('quote.urls')), # ← 新增
]
第 6 步:启动服务器
python manage.py runserver
打开浏览器,访问 http://127.0.0.1:8000/,刷新几次,你会看到不同的名言!
🎉 恭喜!你的第一个 Django 网站跑起来了!
五、技术选型对比:Django vs Flask vs Go(Gin)
很多新手纠结:“为什么不用 Flask?或者直接学 Go?”
我整理了一张对比表,帮你决策:
| 维度 | Django | Flask | Go (Gin) |
|---|---|---|---|
| 学习曲线 | 中等(功能全但需理解框架) | 简单(灵活但要自己选组件) | 较陡(需理解并发、指针等) |
| 开发速度 | ⚡ 极快(自带 ORM、Admin、Auth) | 快(轻量,适合小 API) | 中等(需手动处理很多细节) |
| 适合场景 | 全功能网站、后台系统 | 微服务、API 接口 | 高并发服务、云原生应用 |
| 面试题挑战 | 常考 ORM、中间件、信号 | 考装饰器、蓝图 | 考 Goroutine、Channel、内存管理 |
| 生态 | Python 生态,AI/数据分析无缝衔接 | Python 生态,插件丰富 | Go 生态,云原生强 |
🎯 我的建议:
如果你是零基础想快速做出完整网站 → 选 Django。
如果你已经会 Python,只想写 API → 试试 Flask。
如果你目标是进大厂做高并发后端 → Go 是趋势,但别一上来就硬啃。
六、新手常见问题解答(Q&A)
Q1:为什么我改了代码,网页没变化?
A:Django 开发服务器默认自动重载,但有时会卡住。按 Ctrl+C 停止,再重新 runserver。
Q2:怎么连数据库?默认用的是什么?
A:Django 默认用 SQLite(一个文件数据库),足够开发用。生产环境可换 PostgreSQL 或 MySQL,只需改 settings.py 里的配置。
Q3:manage.py 是干什么的?
A:它是 Django 的“万能工具箱”。常用命令:
python manage.py runserver # 启动服务器
python manage.py makemigrations # 生成数据库变更脚本
python manage.py migrate # 应用数据库变更
python manage.py createsuperuser # 创建管理员账号
Q4:怎么写真正的 HTML 页面?
A:把 HTML 文件放到 quote/templates/ 目录下,然后在 views 里用 render:
from django.shortcuts import render
def home(request):
return render(request, 'index.html', {'quote': 'Hello World'})
Q5:Django 会被淘汰吗?听说 Go 更快?
A:不会。Instagram、Pinterest 都用 Django。Go 在高并发场景有优势,但大部分网站根本不需要那么高的性能。先学会“做出东西”,再考虑“优化性能”。
七、下一步学习建议:从入门到进阶
你已经迈出了第一步!接下来可以:
- 加个数据库:让名言存在数据库里,而不是写死在代码中
- 用模板引擎:把 HTML 和 Python 分离,页面更美观
- 启用 Admin 后台:运行
createsuperuser,访问/admin,体验 Django 自带的管理界面 - 部署上线:用 Vercel + Railway 免费部署你的网站(B站搜我有教程)
- 刷面试题:比如 “Django 的 MTV 架构是什么?”、“ORM 如何防止 SQL 注入?”
💬 最后说句掏心窝的话:
我当初学 Django 时,也觉得“中间件”、“ORM”这些词很玄乎。但只要动手写代码,哪怕只是改一行字,理解就会突飞猛进。
别怕错,错得越多,记得越牢。
结语:你的第一个网站,值得骄傲
今天你不仅学会了 Django 的基本流程,还了解了技术选型的思路,甚至提前接触了面试题和 Go 的对比。这已经超越了 80% 的观望者。
记住:所有大神,都是从 “Hello World” 开始的。
如果你觉得这篇教程有帮助,欢迎去 B站 搜 “阿哲后端课”,我会持续更新 Django 实战系列,下一期教你怎么做一个完整的博客系统!
现在,关掉这篇文章,打开你的终端,敲下第一行代码吧 —— 你的网站,正在等待诞生。

评论 0