New Usage of typing module in python

我原本想要分析一下 django webpack;但是写了一半,为了资料论述严谨,又不得不学习了 django component;在 django component 中,又发现了自己之前不知道的一些机制。无奈,先聊聊遇到的 typing 问题吧!

[阅读全文]

Print Trick for Python

这是一个可以同时将print内容输出到屏幕以及保存到日志文件的简单代码。

主要利用了 builtins 对 print 方法进行 hook,从而让方法全局有效。

[阅读全文]

Good Gevent

Gevent 是一个非常好用的异步工具,能够自动将阻塞的代码转换成非阻塞的代码。

[阅读全文]

Crazy Import

最近发现 Django settings 在使用的时候,容易出现不经过检查的问题。 因此,想要在 settings 的基础上严格约束一下,减少问题。

[阅读全文]

Django 写个过滤器 filter

用 Django 快速开发一个项目,发现 Django 的模板本身不带有整除功能,因此自己手写一个。

这是目录结构。在 urls.py 添加 app 的名称,例如 app_name = ‘app’ ,然后在与models.py 同级的目录下,新建一个 python 包, templatetags 的,新建自己需要的包名即可。

app_extra.py:

这里因为需求比较简单,因此直接就赋值了 11.

应用到模板中:

随后即可看到结果。

此外,寻得两个比较好用 template 插件

实现的东西虽然不多,但是起码把我不想关心的逻辑封装起来了。。

Python functools

Python functools包中,有个很好的函数叫做partial ,中文直接翻译为片函数,此前一直都没有使用过。最近通过阅读别人的代码,学会了这一技能,着实好用。

使用partial,可以把一些固有功能代码做一个整合;

比如我希望一个函数专门做 int2 转换

int2 = partial(int, base=2)

甚至还可以再过分一点,把 base 变成一个字典量传入。

多使用内建函数 locals,可以极大的减少自己的代码量;

这不得不让我感概:真正的 Pythonista,永无止境。

def in_func():
	a = 2
	b = 3

	def test(a, b, **args):
		return a + b

	print(test(**locals()))

CHANGELOG

date content
20230829 调整了一些语病
python