sqids/sqids-python · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
Sqids Python
Sqids(发音为“squids”)是一个小型库,可帮助你从数字生成唯一标识符。它适用于链接缩短、快速生成安全且适合 URL 使用的标识符,以及将其解码回数字以便更快地查询数据库。
功能特点:
- 编码多个数字——从一个或多个非负数字生成简短的标识符
- 快速解码——轻松将标识符解码回数字
- 唯一标识符——通过一次字母随机排序来生成唯一标识符
- 标识符补齐——设置最小长度以使标识符更加统一
- URL 安全——自动生成的标识符不包含常见的脏话字符
- 随机化输出——顺序输入会生成非连续的标识符
- 多种实现方式——支持40 多种编程语言
🧰 应用场景
适用场景:
- 为公共 URL 生成标识符(例如:链接缩短)
- 为内部系统生成标识符(例如:事件跟踪)
- 解码以便更快地查询数据库(例如:通过主键查询)
不适用于:
- 敏感数据(这不是一个加密库)
- 用户标识符(解码后可能会暴露用户数量)
🚀 入门指南
通过 PyPI 安装该包,例如使用 pip:
pip install sqids
从 sqids 包中导入 Sqids 类:
from sqids import Sqids
sqids = Sqids()
👩💻 示例
简单的编码与解码:
sqids = Sqids()
id = sqids.encode([1, 2, 3]) # "86Rf07"
numbers = sqids.decode(id) # [1, 2, 3]
注意 🚧 由于算法的设计,多个 ID 可能会解码为相同的数字序列。如果您的设计要求 ID 必须是唯一的,那么您需要手动对解码后的数字进行重新编码,并检查生成的 ID 是否一致。
为 ID 设定最小长度要求:
sqids = Sqids(min_length=10)
id = sqids.encode([1, 2, 3]) # "86Rf07xd4z"
numbers = sqids.decode(id) # [1, 2, 3]
通过提供自定义字母表来随机化 ID:
sqids = Sqids(alphabet="FxnXM1kBN6cuhsAvjW3Co7l2RePyY8DwaU04Tzt9fHQrqSVKdpimLGIJOgb5ZE")
id = sqids.encode([1, 2, 3]) # "B4aajs"
numbers = sqids.decode(id) # [1, 2, 3]
防止特定单词出现在自动生成的 ID 的任何位置:
sqids = Sqids(blocklist=["86Rf07"])
id = sqids.encode([1, 2, 3]) # "se8ojk"
numbers = sqids.decode(id) # [1, 2, 3]