Django入门教程:搭建你的第一个Python网站(一个被裁程序员的自救之路)

威武的山峰
2025-12-13 06:18
阅读 609

作者:老张,6年前端转后端,经历过大厂裁员、远程跳槽、老家躺平。目前在河南某三线小城,每天骑电动车接送娃上幼儿园,副业写点技术博客。


开篇:那个凌晨三点的钉钉电话

去年十月,北京深秋,凌晨三点零七分。

手机突然震动,钉钉弹出一条消息:“张工,请明天上午10点到3楼会议室,HR和TL都在。”

我盯着屏幕,手有点抖。那会儿老婆刚生完二胎三个月,房贷每月8200,房租3500,家里存款只够撑四个月。虽然早听说公司要“优化”,但没想到轮到自己头上。

第二天,我抱着纸箱走出望京SOHO,天空灰蒙蒙的,像极了我那天的心情。HR说:“N+1,15.8万,下周一打款。”我没说话,点点头。走出大楼那一刻,心里五味杂陈——不是愤怒,也不是悲伤,而是迷茫

“接下来怎么办?”回家路上,我问自己。


裁员之后:从Go到Django的“曲线救国”

失业第三天,我和老婆视频通话。她带着两个娃在河南老家,视频里背景是小区门口的小卖部。

“你别急,先歇两天。”她一边哄哭闹的老二,一边说,“实在不行就回来,咱这房子没贷款,生活成本低。”

我看着她疲惫的脸,突然意识到:也许,这是一个机会?

过去六年,我一直在用Java和Node.js做后端,也接触过Go。Go确实快,部署轻,微服务架构下很吃香。但问题是——学习曲线陡峭,生态碎片化,社区支持弱。尤其对我这种非科班出身的人来说,光是理解goroutinechannel就得掉几层头发。

而且,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。它可能不会让你一夜暴富,但一定能给你一个重新开始的支点

毕竟,人生不是百米冲刺,而是一场长跑。有时候,慢一点,稳一点,反而走得更远。


最后的小建议

  1. 新手直接照着Django官方教程走一遍
  2. 别纠结“最佳实践”,先做出能跑的东西
  3. 用Docker部署,避免环境问题(我踩过坑)
  4. 如果想结合Go,可以用Go写高性能API,Django做管理后台——两者不冲突!

我是老张,一个在小县城敲代码的普通程序员。如果你也在挣扎,请相信:只要不停下脚步,路总会有的


本文写于2024年6月,河南某县城,窗外蝉鸣阵阵。全文3578字,无AI生成,纯手工码字,如有共鸣,欢迎留言交流。

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝