人工精选跟着王进老师学Python之Django篇第二季:数据库开发之原生SQL语句
如果你正在用 Django 做后端,迟早会撞上 ORM 绕不过去的那道坎:一段查询写起来别扭、跑起来慢、报错信息看不懂,最后发现用原生 SQL 三行就能解决。这门课针对的就是这个具体场景——不是教你从零学 Django,而是专门讲清楚在 Django 项目里什么时候该写、怎么写原生 SQL,以及写完
会员可免费下载本篇月会员可免费领取。
开通会员 ›会员 · 按档位
游客按标价购买,不享受上表折扣。
支付成功后自动发放网盘链接,链接失效可找客服免费补
如果你正在用 Django 做后端,迟早会撞上 ORM 绕不过去的那道坎:一段查询写起来别扭、跑起来慢、报错信息看不懂,最后发现用原生 SQL 三行就能解决。这门课针对的就是这个具体场景——不是教你从零学 Django,而是专门讲清楚在 Django 项目里什么时候该写、怎么写原生 SQL,以及写完之后怎么和 ORM 和平共处。
它解决的是哪类工作场景
典型情况有三种。一是报表和统计类需求,多表关联加聚合,ORM 的 annotate 层层嵌套后自己都读不懂,改成手写 SQL 反而清晰。二是已有系统的数据迁移和批量处理,需要临时写脚本查库、改库,用 ORM 建模型反而累赘。三是性能排查,慢查询定位到最后往往要看真实执行的 SQL,而 Django 的 ORM 默认把 SQL 藏起来了,你得知道怎么把它打印出来、怎么判断问题出在哪一层。
这门课不会假装原生 SQL 比 ORM 更好。它的定位更接近「补齐短板」:ORM 能干净利落解决的,就别写 SQL;ORM 解决起来费劲的,你得有另一个选项,并且知道这个选项的边界在哪。
学完能独立做什么
判断一门课值不值得花时间,最好看学完手上多出什么能力。按这门课的内容,学完后你应该能独立完成这几件事:在 Django 项目里建立数据库连接并执行查询,拿到结果后映射成字典或对象供视图层使用;处理带参数的查询,避开字符串拼接带来的注入风险;把原生 SQL 的结果和已有的 Model 混用,而不是被迫在一个项目里维护两套数据访问逻辑;遇到事务、批量插入这类场景时,知道该用 ORM 的接口还是直接落到 SQL 层。
换句话说,学完的标志不是「背下了几条语法」,而是下次遇到 ORM 写不顺的查询时,你能判断该不该换写法,并且换得动。
资料适合什么基础
这门课是 Django 系列的第二季,前置要求很明确:你得写过至少一个能跑的 Django 项目,知道 Model、View、URL 是怎么串起来的,也接触过 manage.py 和基本的 ORM 查询。如果连 Django 项目目录结构都没搭过,直接看这一季会比较吃力,建议先把第一季或任意一个入门教程过一遍。
数据库这边,课程涉及 MySQL,但不需要你达到 DBA 水平。会写基础的 SELECT、JOIN、WHERE,理解主键和外键就够跟上。如果你之前只用过 SQLite 自带的 Django 配置,课程里切换数据库连接的部分正好可以补上这块经验。
怎么用这份资料
配套的章节笔记适合两种用法。一是跟着课程进度走,每看完一节用笔记对照自己的项目改一遍代码,比纯看视频记得牢;二是隔一段时间回头翻,尤其是事务和参数化查询这些细节,写业务时容易图省事跳过,翻笔记能提醒自己别偷懒。
需要提醒的是,原生 SQL 在 Django 里属于「知道怎么用、但别到处用」的工具。学完之后更常见的状态是:大部分查询继续交给 ORM,少数几个关键位置用 SQL 处理,并且能在代码里写清楚为什么这里不用 ORM。如果你期待的是学完就把项目全部改成手写 SQL,那和这门课的方向正好相反。
整体上,这是一门目标窄、但补得很准的课。适合已经能写 Django、但在数据访问层总觉得使不上劲的人。如果你的项目至今没遇到过 ORM 写不顺的情况,可以先放一放,等真撞上问题再回来看,吸收率会更高。
dca72b729edea6539aec637384888bb4_2d14833c5fd0b54ccd1a737e88555082.webp 下载附件 保存到相册 2025-2-16 01:07 上传
课程推荐
《跟着王进老师学Python之Django篇第二季:数据库开发之原生SQL语句》dca72b729edea6539aec637384888bb4_2d14833c5fd0b54ccd1a737e88555082.webp 下载附件 保存到相册 2025-2-16 01:07 上传【技能收获】学完可掌握:Python 编程、MySQL / 数据库。课程以实战为导向,覆盖从基础概念到完整项目落地的关键步骤,配套章节笔记便于课后复盘与面试前快速回顾。【学习建议】建议按目录顺序学习,先打基础再进入综合实战章节;每完成 2~3 节可结合笔记整理一份学习小结,最终尝试独立复现一套完整 Demo 写入个人作品集。【就业发展】可面向岗位:Linux 运维工程师、SRE、云计算工程师、DevOps 工程师。云原生与自动化运维仍是企业 IT 刚需方向,认证 + 实战项目组合能显著提升面试通过率,适合向中高级运维或架构岗进阶。 若你已有一定编程或运维基础,本课程可帮助你在现有技能栈上快速叠加热门方向能力,提升求职时的项目说服力与薪资谈判空间。
视频目录(54 节)
课程目录
* 1 引入数据库开发.mp4
* 2 数据是核心.mp4
* 3 常见的数据库产品.mp4
* 4 数据库开发环境的基本介绍.mp4
* 5 准备开发环境所需的软件.mp4
* 6 安装Centos系统.mp4
* 7 安装mysql.mp4
* 8 登录mysql.mp4
* 9 解决mysql无法存储中文问题.mp4
* 10 使用Navicat管理mysql.mp4
* 11 创建数据库.mp4
* 12 创建表.mp4
* 13 数据类型.mp4
* 14 表的基本操作.mp4
* 15 主键 -- Primary Key.mp4
* 16 唯一键 -- Unique.mp4
* 17 外键 -- Foreign Key.mp4
* 18 创建表的最佳实践.mp4
* 19 认识SQL查询.mp4
* 20 准备查询数据.mp4
* 21 SQL查询基础练习(上).mp4
* 22 SQL查询基础练习(下).mp4
* 23 聚合函数.mp4
* 24 分组查询.mp4
* 25 嵌套查询.mp4
* 26 初识连接查询.mp4
* 27 内连接介绍及四种写法.mp4
* 28 内连接实战讲解.mp4
* 29 外连接介绍及三种写法.mp4
* 30 外连接实战讲解.mp4
* 31 交叉连接介绍和实战演示.mp4
* 32 自连接介绍和实战演示.mp4
* 33 Django中mysql驱动介绍.mp4
* 34 pymysql的安装和使用.mp4
* 35 pymysql使用的完善.mp4
* 36 演示:创建表.mp4
* 37 演示:向表中插入数据.mp4
* 38 演示:修改和删除表中的数据.mp4
* 39 演示:获取表中的数据.mp4
* 40 项目总体介绍.mp4
* 41 项目基本环境的搭建.mp4
* 42 展示学生信息.mp4
* 43 实现增删改前的准备.mp4
* 44 展示学生明细信息.mp4
* 45 修改学生信息.mp4
* 46 添加学生.mp4
* 47 删除学生.mp4
* 48 查询学生.mp4
* 49 事务的介绍.mp4
* 50 mysql中事务基本演示.mp4
* 51 Django中使用事务提交数据.mp4
* 52 演示:添加多个学生(上).mp4
* 53 演示:添加多个学生(下).mp4
* 54 第二季课程总结.mp4





