Articles

让你的Django应用变DRY的几个最佳实践

编程

目前在Python的Web框架中被应用最广泛的就是Django和Django REST Framework. 这两种框架都提供了非常健壮的功能,能满足Web开发的各个方面。DRY是Don't-Repeat-Yourself的缩写,是一种代码编写的原则,即不要重复自己的工作。我个人有些代码洁癖,凡是发现我需要复制粘贴代码的地方,就想着能怎样去除重复的工作。在日常的开发中也总结出了一些个人的实践,分享

Pip trusted_host问题记录

编程

问题定位一日我在Pipenv上收到一个issue: 用户说Pipenv执行的pip命令中--trusted-host缺少了port部分。然后我去扒源码,结果发现有两处同样的函数:[1][2]逻辑不一致。顿时感觉事情没那么简单。于是我本地搞了一个pypi server, 并用自签名支持了https,然后用pip测试1:BASH$ pip install -i https://localtest.me

Pipenv有什么问题

编程

这不是我第一次写Pipenv相关的文章,也相信不是最后一次,前两篇我用的是英文,(浅陋地)分析了Pipenv和Poetry的优劣,至今仍是我博客访问量最高的文章。今天是因为在知乎上看到两位朋友写的两篇文章(链接我放在文末了),吐槽了一通以后推荐大家不要使用Pipenv。说实话,作为核心维护者之一我是有点心酸的,因为他们说的那些问题的确都存在。在本文中我希望从一个核心维护者的角度,总结一下Pipen

使用Flask搭建个人博客

编程

我的个人博客从Hexo迁移到自建主机,主要是为了能自由的增减特性,和随时随地的更新博客(然而并没有)。所以考虑用Python的Web框架来写,由于我最开始是从Flask入门的,对它的源码也最了解,所以就选择了Flask。总的来说,一个个人博客网站,主要包含以下几个功能:文章的保存和展示文章的分类和标签文章的评论管理对于动态博客来说,还有博客的后台部分其中第4部分已经有单独的文章来介绍,使用的是前后

How does it work? -- threading.Condition

编程

继两年前的上一篇文章之后,不靠谱博主终于想起了How does it work这个坑。主要是近期也没有遇到可值得分享的「精巧」的实现。之前其实也过了一遍threading模块的源码,对里面的各种锁也只是有个大概印象,并且它们之前非常像,很容易让人confusing。这次碰到实际需要,于是仔细看了一下源码,发现还是有很多搞头的。当然,你只是使用的话照着例子用就好了不会出错,但还是值得花点工夫弄清里面

全新后台上线

编程

最近几周空余时间都在做博客后台的重构,主要是因为之前匆匆上线的后台略显简陋。这一次重构就是奔着前后端分离去的,也是为了练练自己的前端技能。主体框架使用了国人的Vue Element Admin,框架本身提供了丰富的机制,我做了大量的裁剪,主要保留了文章列表、文章编辑等模块,其他亮点有:主题颜色实时显示更新配置更新立即生效文章配置默认隐藏,更专注于写作全局国际化,选择语言立即生效独立集成工具页面,方