专栏名称: Python程序员杂谈
关注PythonWeb开发及相关领域的方方面面,分享在实际工作中遇到的问题及解决方案。关注the5fire,了解Python开发的点点滴滴。
目录
相关文章推荐
小众软件  ·  飞牛OS上线 99元/年的内网穿透服务 ·  13 小时前  
游戏那点事Gamez  ·  发疯的PC:20余款大作杀出,2025第一波 ... ·  2 天前  
APPSO  ·  刚刚,Gemini 2.5 ... ·  昨天  
51好读  ›  专栏  ›  Python程序员杂谈

《Django源码解析- 视频版》前言-开篇词

Python程序员杂谈  · 公众号  ·  · 2018-06-27 20:54

正文

请到「今天看啥」查看全文


2. Django 和 Tornado

看Django的源码是纯属工作需要,当时我们基于Django的Admin系统进行了很多定制开发,而Django的Admin部分文档偏偏很少,因此大部分的需求都需要去查看Django Admin的源码来进行处理。

这么做带来的好处就是遇到问题是不依赖文档,直接通过查看源码来确认有哪些API可以使用,可以用来hook,或者patch。

在前面的课程中我也介绍过,Django的Admin用到了Django提供的各个模块:Model,Form,Widget,QuerySet等,因此通过这个机会熟悉了Django常用的模块。

看Tornado源码是源于我们认为相对于Django庞杂的业务代码来说,Tornado的代码的技术含量更高。有一段时间团队成员都在私下学习Tornado的源码,对于要承载高流量的业务来说,完全掌握所使用的框架是非常有必要的。

从读源码的体验上来说,Django的源码纷繁复杂,各种模块之间的依赖需要阅读大量相关代码才能捋的清楚。而Tornado的代码是,晦涩难懂,因为它基于事件模型封装出来的协程实现方案是非常绕的。两者是不同的逻辑,可以学习到不同的内容。

3. Nginx

阅读Nginx源码是为了解决当时遇到的一个问题:《Nginx主动监测模块upstream check误用导致的502--no live upsteams》。

从解决的问题的方向上来说,阅读Nginx源码并不是最有效的方式,毕竟是C的代码,没有那么熟悉。但当时没有想到nginx_upstream_check_module模块的默认值为default_down=true,以为是我们的Nginx配置有问题。所以花了些时间调试并阅读了Nginx部分源码,从根上找到了问题所在。

从技术储备上来说,也是有些收获,虽然现在回忆起来有很多细节都忘了,但再次阅读源码应该问题不大。关键在于熟悉了Nginx启动、重启、模块加载以及处理请求的流程。







请到「今天看啥」查看全文