Django入门教程:搭建你的第一个Python网站——一个成都奶爸的深夜自救指南
作者:老王,两个娃的爹,成都打工人,月薪18k(税前),房租3500,晚上9:30后才有自己的时间
上周五晚上,我正瘫在沙发上刷脉脉,突然弹出一条私信:
“Hi,看到你简历上有Python经验,我们公司在招Django后端,base成都,15k-22k,有兴趣聊聊吗?”
我手一抖,差点把刚泡好的茉莉花茶洒到键盘上。
老婆从主卧探出头:“又熬夜?老大刚睡着,老二还在哼唧,你悠着点。”
我赶紧压低声音:“有个面试机会,可能要涨薪。”
她翻了个白眼:“上次你说学Go,结果买了本《Go语言圣经》,到现在书签还夹在第17页。这次别又是三分钟热度。”
我苦笑。她说得对。去年十月,我也雄心勃勃想转Go,觉得“云原生”、“高并发”听着就高级,大厂都在用,简历能镀金。可现实是——白天上班写CRUD,回家陪娃洗澡、读绘本、哄睡,等俩小祖宗彻底安静下来,往往已经9:30了。脑子像被榨干的柠檬,连打开IDE都嫌累。
但这次不一样。Django,这个词在我心里悄悄燃起了一点火苗。
为什么?因为我想做个产品。
一、不是我不想学Go,是娃不给我时间
先说清楚,我不是看不起Go。相反,我觉得Go很牛逼。简洁、高效、部署方便,K8s、Docker、微服务……这些词听着就性感。我司技术栈也在往Go迁移,隔壁组的老张跳槽去了字节,据说就是靠Go拿的offer,月薪从15k涨到22k。
我也心动。但现实很骨感。
Go的学习曲线对我这种“碎片化学习者”太不友好了。没有运行时、没有泛型(旧版本)、错误处理全靠手动判断……每一个概念都要花整块时间去理解。而我?每天能挤出的“高质量学习时间”不超过40分钟,还得防着娃突然哭醒。
有天凌晨1点,我硬撑着敲完一个Go的HTTP服务器demo,结果跑起来报错:undefined: context。查了半天才发现是包导入路径错了。那一刻我真的想砸电脑——不是代码难,是我真的太累了。
老婆说得对:“你连连续两小时都不行,还学什么系统编程?”
二、转投Django:一个“懒人”的自救选择
转折发生在上个月。我在知乎刷到一篇帖子:《用Django三天做出一个MVP产品》。
MVP?产品?我眼睛一亮。
我一直有个想法:做一个本地亲子活动推荐平台,整合成都周边的亲子农场、手工课、绘本馆信息。市面上要么是大众点评这种大而全的,要么是微信群里零散转发,体验极差。如果能做个轻量级网站,哪怕只有基础功能,也能解决一部分痛点。
但问题来了:我没时间从零造轮子。
这时候,Django的优势就凸显出来了。
“Django is batteries included.” —— 官方口号,翻译成人话:开箱即用,省事!
- 自带Admin后台,不用手写管理界面
- ORM自动映射数据库,告别手写SQL
- 用户认证、表单验证、CSRF防护……统统内置
- 开发服务器热重载,改完代码刷新就行
对我来说,这意味着:用最少的时间,跑通一个完整的产品原型。
这才是关键。我不是为了炫技,我是为了验证想法,为了求职时能说“我做过一个产品”,而不是“我会写接口”。
三、实战:从零搭建第一个Django网站(奶爸版)
下面我就用最接地气的方式,带你走一遍Django入门。全程基于我的真实环境:
- 系统:Windows 11(公司配的破笔记本)
- Python:3.10
- 时间:每天晚上9:30–10:10,娃睡后
- 心态:随时可能被娃哭声打断
第一步:装环境(别被劝退!)
pip install django
就这么简单。别信网上那些复杂的虚拟环境教程,初期直接全局装就行。等你真做出东西了,再学venv也不迟。
然后创建项目:
django-admin startproject kidschengdu
cd kidschengdu
python manage.py runserver
浏览器打开 http://127.0.0.1:8000,看到那个火箭图标——恭喜,你的第一个网站跑起来了!
内心OS:比Go那个“Hello World”简单多了吧?Go还要写package、import、func main……Django一行命令搞定。
第二步:建个App(别怕术语)
Django里,“App”不是手机应用,而是功能模块。比如用户系统、活动列表、评论区,都可以是独立App。
python manage.py startapp events
然后在 settings.py 里注册:
INSTALLED_APPS = [
...
'events',
]
第三步:定义数据模型(这才是产品核心)
我想展示“亲子活动”,所以建个模型:
# events/models.py
from django.db import models
class Event(models.Model):
title = models.CharField(max_length=100)
location = models.CharField(max_length=100) # 比如“麓湖生态城A4美术馆”
date = models.DateField()
description = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
然后生成并执行迁移:
python manage.py makemigrations
python manage.py migrate
数据库(默认SQLite)自动建好表。不用写CREATE TABLE,不用连MySQL,连Docker都不用装——这对资源有限的我来说,简直是福音。
第四步:写视图和模板(让页面能看)
Django支持函数视图和类视图。新手建议用函数,直观。
# events/views.py
from django.shortcuts import render
from .models import Event
def event_list(request):
events = Event.objects.all().order_by('-date')
return render(request, 'events/list.html', {'events': events})
模板放 events/templates/events/list.html:
<!DOCTYPE html>
<html>
<head><title>成都亲子活动</title></head>
<body>
<h1>近期活动</h1>
{% for event in events %}
<div>
<h2>{{ event.title }}</h2>
<p>{{ event.location }} | {{ event.date }}</p>
<p>{{ event.description|truncatewords:20 }}</p>
</div>
{% endfor %}
</body>
</html>
最后配路由:
# kidschengdu/urls.py
from django.urls import path, include
urlpatterns = [
path('events/', include('events.urls')),
]
# events/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.event_list, name='event_list'),
]
重启服务器,访问 /events/ —— 数据出来了!
真实场景:那天晚上我搞到10:25,老二突然发烧,39度。我一边给娃物理降温,一边心里默念:“至少路由跑通了……”
四、为什么Django更适合“产品思维”的打工人?
回到开头那句:我想做个产品。
很多程序员(包括曾经的我)陷入一个误区:技术越新越牛,Go > Python,Rust > Go,Serverless > Docker……
但现实是:市场要的是解决问题的产品,不是技术秀。
Django让你快速验证想法。你可以:
- 一周内做出可演示的原型
- 用Admin后台手动录入数据(早期根本不需要爬虫)
- 加个用户注册,就能收集真实反馈
- 部署到Heroku或Vercel(Django+Render超简单),发给朋友试用
而这些,在Go里你得自己搭框架、写中间件、处理模板渲染……等你搭完,热情早就凉了。
更别说求职。HR看不懂“熟悉Goroutine调度模型”,但看得懂“独立开发并上线了一个本地生活服务平台,日活200+”。
五、关于求职:技术只是敲门砖,产品才是通行证
上周我和那家公司的HR聊了。
他问:“看你简历写Python,主要用什么框架?”
我说:“Django,最近在用它做一个成都本地的亲子活动聚合站,虽然还没推广,但核心功能都跑通了。”
他眼睛一亮:“哦?有线上地址吗?”
我发了Render的链接。虽然简陋,但有真实数据、有交互、有用户流程。
最后谈薪谈到19k,比现在高1k。HR说:“我们看重的是你有产品sense,不光会写代码。”
那一刻我明白了:企业要的不是语言专家,而是能用技术创造价值的人。
Go当然重要,但如果你连一个完整的产品都没做过,空谈“高并发架构”只会显得浮躁。
六、写给同样疲惫的你
我知道你在看这篇文章时,可能也刚哄睡孩子,或者加班到深夜,或者正在为35岁焦虑。
我想说:别被技术潮流绑架。
- 如果你想快速验证想法 → 选Django
- 如果你想进大厂做基础设施 → 学Go
- 如果你想转行做产品经理 → 做一个真实可用的东西,比背100道八股文有用
我现在的计划是:
- 用Django把“kidschengdu”做到MVP阶段(目标:100个真实用户)
- 如果数据不错,申请成都本地的创业补贴(听说有5万)
- 同时不放弃Go,等产品稳定了,用Go重写核心API(长远规划)
技术是工具,产品是载体,生活才是目的。
我在成都,房租3500,工资不高,但娃睡着后那一个小时的宁静,是我最珍贵的“自由时间”。我不求一夜暴富,只希望用代码,一点点改善自己和身边人的生活。
最后几句真心话
- 别信“30岁必须学Rust”的毒鸡汤,先把手头的事做好
- 求职时,一个粗糙但完整的项目 > 十个半途而废的教程
- 如果你是奶爸/妈,请原谅自己进度慢——你不是不行,你只是在负重前行
Django不是银弹,但它可能是你此刻最需要的那把钥匙。
今晚,等娃睡了,打开终端,敲下:
django-admin startproject your_first_product
你的第一个产品,就从这一行开始。
共勉。

评论 0