aiokafka

Python 开发里使用的异步 kafka 客户端,大多是 aiokafka,因为它是目前 Python 社区里唯一一个直接支持 asyncio 的 kafka 客户端库。

但这个库有个大问题,也就是 [Producer] Performance drop when …

poetry 满足了我对包管理器的一切愿望,它的野心有点大,向着 Python 界的 npm 一路狂奔。

但这不是贬义词,它是一款比 pipenv 优秀的包管理器——当你适应它之后。

poetry init

就像 npm init 一样,poetry …

在之前的一篇文章 输出彩色命令行 里,我介绍了 Colorama 的基本使用方法。但作为一个命令行程序,除了好看的五颜六色的输出,还需要解析命令行参数。

一个简单好用的库—— click ,不仅集成了 Colorama,还提供了更简单的命令行解析。

Command (命令)

使用click创建一个命令十分简单:

import click
@click …

无服务函数也许是近来较为热门的一个东西。由于我没得信用卡,无奈只好在阿里云上小试一番。

但我惊奇的发现,如果使用flask等支持WSGI的Web框架去写一个无服务函数,是没办法直接用阿里云的API网关去调用函数的。因为网关为了通用性,它不可能一个个协议去做适配。

那么我为了方便开发与使用,创造了 Aliyun Gateway Interface (aligi)。

按例, pip install aligi 安装一下 …

最近在用阿里云的函数计算服务,需要使用JWK(Json Web Key)来生成JWT(Json Web Token),一时之间竟没有找到一个优雅的、提供JWK生成JWT的库,差点绝望的使用了阿里云给的Java样例。然后惊喜的发现 PyJWT 其实是支持JWK的,但是文档上并没有写。

此篇做一个系统的梳理,算是对官方文档的补充。

如果你不需要使用类似于RSA的加密算法 …

最近由于PM的需求,又去研究了Django一个app对应一个子域名的用法。寻找资料的过程中发现没有较好的中文教程,遂有此篇。

安装 Django-Hosts

按照惯例,首先需要 pipenv install django-hosts (如果你没有pipenv, pip也是一样的)。

'django_hosts' 加入项目设置中的 INSTALLED_APPS

'django_hosts.middleware …

Windows7之后的Windows系统自带的CMD或者Powershell,就不再支持ANSI代码来控制颜色了。那么我们如果想要改变Windows的命令行颜色,只好通过Windows给的句柄来控制颜色。

import sys
import ctypes
if sys.platform.startswith('win'):
    stdout = ctypes.windll.kernel32.GetStdHandle(-11)
    def …

最近我一个开发怎么就干上了运维的活,此篇以作记录。

下载之后修改 /etc/supervisord.conf 其中取消后台Web端口的注释

[inet_http_server]         ; inet (TCP) server disabled by default
port=127.0.0.1:9001 …

一般来说Python打包成系统可执行文件,有两个库,但支持更新版本(3.6+)的Python的就是Pyinstaller了,有趣的是Pyinstaller在windows7上运行的十分完美,到windows10上就有一些warning,它是由于win10的feature导致的,这个warning并不影响我们的打包。

在win10上面打包虽然有warning,但是打包出来的exe放到别的电脑上跑就没有问题。在win7打包出来的,放到别的win7上就找不到dll,我差点因为这个而挂科。

安装Pyinstaller

首先 pip install pyinstaller …

定时任务无论是个人开发还是企业业务都是需要的。但个人开发的时候使用celery,未免有点杀鸡用牛刀的感觉。Celery性能不错,但配置起来并没有那么简单。非密集型的定时任务,我们完全可以使用 django-background-tasks 来替代Celery。

How to use

按例, pip install django-background-tasks 来安装。

然后加入INSTALLED_APPS:

INSTALLED_APPS = (
    # ...
    'background_task' …