Django入门教程:搭建你的第一个Python网站(一个被裁程序员的自救之路)
作者:老张,6年前端转后端,经历过大厂裁员、远程跳槽、老家躺平。目前在河南某三线小城,每天骑电动车接送娃上幼儿园,副业写点技术博客。
开篇:那个凌晨三点的钉钉电话
去年十月,北京深秋,凌晨三点零七分。
手机突然震动,钉钉弹出一条消息:“张工,请明天上午10点到3楼会议室,HR和TL都在。”
我盯着屏幕,手有点抖。那会儿老婆刚生完二胎三个月,房贷每月8200,房租3500,家里存款只够撑四个月。虽然早听说公司要“优化”,但没想到轮到自己头上。
第二天,我抱着纸箱走出望京SOHO,天空灰蒙蒙的,像极了我那天的心情。HR说:“N+1,15.8万,下周一打款。”我没说话,点点头。走出大楼那一刻,心里五味杂陈——不是愤怒,也不是悲伤,而是迷茫。
“接下来怎么办?”回家路上,我问自己。
裁员之后:从Go到Django的“曲线救国”
失业第三天,我和老婆视频通话。她带着两个娃在河南老家,视频里背景是小区门口的小卖部。
“你别急,先歇两天。”她一边哄哭闹的老二,一边说,“实在不行就回来,咱这房子没贷款,生活成本低。”
我看着她疲惫的脸,突然意识到:也许,这是一个机会?
过去六年,我一直在用Java和Node.js做后端,也接触过Go。Go确实快,部署轻,微服务架构下很吃香。但问题是——学习曲线陡峭,生态碎片化,社区支持弱。尤其对我这种非科班出身的人来说,光是理解goroutine和channel就得掉几层头发。
而且,Go在国内大厂虽火,但中小企业用得少。我翻了翻BOSS直聘,发现老家周边的岗位,90%还是要求Python或Java。
“要不……试试Django?”我自言自语。
为什么是Django?
- 开发效率高:自带Admin、ORM、Auth,开箱即用
- 文档齐全:官方教程比某些国产框架强十倍
- 适合快速验证想法:我想做个副业网站,不能折腾三个月才上线
- Python生态友好:数据分析、AI都能无缝衔接
更重要的是——它简单到让我这个被裁的中年程序员也能快速上手。
动手!搭建第一个Django网站(真实步骤记录)
第一步:环境准备(2023年10月12日,晚上9点,老家书房)
我在Windows上装了WSL2,跑Ubuntu。创建虚拟环境:
python -m venv myenv
source myenv/bin/activate
pip install django
然后生成项目:
django-admin startproject mysite
cd mysite
python manage.py runserver
浏览器打开 http://127.0.0.1:8000 —— 熟悉的火箭图标!那一刻,我差点哭出来。不是因为多难,而是久违的掌控感回来了。
说实话,Go写个Hello World都要配GOPATH、mod、build tags,而Django一行命令就跑起来了。对焦虑中的我来说,这种“立刻见效”的反馈太重要了。
第二步:创建第一个App(10月13日,娃睡午觉时)
我想做个简单的博客系统,记录技术笔记。
python manage.py startapp blog
在settings.py里注册:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
# ...
'blog',
]
定义模型(models.py):
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
然后迁移数据库:
python manage.py makemigrations
python manage.py migrate
接着写视图(views.py):
from django.shortcuts import render
from .models import Post
def post_list(request):
posts = Post.objects.all()
return render(request, 'blog/list.html', {'posts': posts})
配上URL路由,写个简单模板……不到两小时,一个能增删改查的博客雏形就出来了。
第三步:用Admin后台管理内容(10月14日,晚饭后)
Django最让我惊艳的,是它的Admin后台。
在admin.py注册模型:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
运行python manage.py createsuperuser,创建管理员账号。
登录 /admin —— 天啊!一个功能完整的CMS系统直接送上门!不用写一行前端代码,就能管理所有文章。
我当时就笑了:“这玩意儿要是早十年出现,我还用天天加班写后台吗?”
技术选型对比:为什么我暂时放弃了Go?
我知道很多人会说:“Go才是未来!”“Django太重了!”
但作为一个被现实毒打过的程序员,我想说:工具没有好坏,只有合不合适。
| 维度 | Django (Python) | Go (Gin/Echo) |
|---|---|---|
| 学习成本 | 低,语法接近自然语言 | 中高,需要理解并发模型 |
| 开发速度 | 极快,自带轮子多 | 慢,很多功能要自己造 |
| 部署复杂度 | 中(需配WSGI服务器) | 低(编译成单文件) |
| 社区生态 | 成熟,文档丰富 | 快速发展,但碎片化 |
| 适合场景 | MVP、中小型Web应用、快速迭代 | 高并发微服务、云原生 |
我在家远程办公,主要做To B SaaS工具和副业项目。客户等不起,我也耗不起。Django让我三天做出原型,一周上线测试版。而用Go?光是选ORM(GORM vs Ent vs XORM)就能吵三天。
当然,如果我要做千万级QPS的网关服务,Go绝对是首选。但对于90%的普通业务场景,Django的“全栈一体化”优势碾压一切。
远程办公的意外收获:省下的不止是房租
今年三月,我靠着这个Django博客系统,接了个外包项目——帮一家本地教育机构搭课程管理系统。报价1.8万,两周交付。
客户看到Admin后台时惊呆了:“这后台是你自己写的?太专业了!”
其实我只是把Django Admin稍微美化了一下,加了点权限控制。但对他们来说,这就是“定制开发”。
更爽的是——我现在在老家远程办公,房租从3500降到0(父母房子),吃饭一天30块,孩子上公立幼儿园一个月400。生活成本直降70%。
上个月,我甚至开始尝试接海外远程岗。一个美国小公司看中我的Django经验,给到月薪4500美元(约3.2万人民币)。虽然不如大厂巅峰期,但工作时间自由,还能陪孩子长大。
老婆笑着说:“你被裁反而是好事?”
我苦笑:“算是塞翁失马吧。”
给初学者的真心话:别被“技术鄙视链”绑架
经常看到新手在论坛问:“现在学Django是不是过时了?要不要直接上Go?”
我的回答永远一样:先跑起来,再优化。
你连HTTP请求都没发明白,就想着用Go写分布式系统?醒醒!
Django教会我的,不仅是技术,更是工程思维:
- 如何组织代码结构
- 如何处理用户认证
- 如何安全地操作数据库
- 如何部署和监控
这些能力,迁移到任何语言都通用。等你真正理解了Web开发的本质,再去看Go、Rust、Node.js,会发现底层逻辑惊人地相似。
记住:工具是为人服务的,不是人跪着伺候工具的。
结尾:从“被优化”到“自我优化”
回看这一年,裁员不是终点,而是转折点。
我不再盲目追逐“高大上”的技术栈,而是根据自身处境做务实选择。Django让我低成本试错,快速验证想法,最终找到了远程工作的节奏。
上周五晚上,我坐在阳台,一边喝着5块钱的茉莉花茶,一边调试新项目的API。远处是县城的夜景,没有国贸的霓虹,但有孩子的笑声从屋里传来。
那一刻我突然明白:所谓“成功”,不是在CBD写字楼里当螺丝钉,而是拥有选择生活方式的自由。
如果你也正处在职业低谷,不妨试试Django。它可能不会让你一夜暴富,但一定能给你一个重新开始的支点。
毕竟,人生不是百米冲刺,而是一场长跑。有时候,慢一点,稳一点,反而走得更远。
最后的小建议:
- 新手直接照着Django官方教程走一遍
- 别纠结“最佳实践”,先做出能跑的东西
- 用Docker部署,避免环境问题(我踩过坑)
- 如果想结合Go,可以用Go写高性能API,Django做管理后台——两者不冲突!
我是老张,一个在小县城敲代码的普通程序员。如果你也在挣扎,请相信:只要不停下脚步,路总会有的。
本文写于2024年6月,河南某县城,窗外蝉鸣阵阵。全文3578字,无AI生成,纯手工码字,如有共鸣,欢迎留言交流。

评论 0