我正在使用Flask dan Flask-SQLAlchemy构建Rest API。只是想知道,有没有办法生成一个唯一的ID字符串主键?此密钥将用于标识API端点,例如:
POST v0.2 / users / 4q2VolejRejNmGQB / messages
而不是
POST v0.2 / users / 123 / messages
我正在玩http://hashids.org/,但似乎有问题,因为在我保存数据后,主键会自动生成,而hashids需要生成给定的整数
答案 0 :(得分:1)
我刚刚得到了解决方案。我正在使用uuid生成唯一的主键和base64以使其友好。
import re
import uuid
import base64
def uuid_url64():
rv = base64.b64encode(uuid.uuid4().bytes).decode('utf-8')
return re.sub(r'[\=\+\/]', lambda m: {'+': '-', '/': '_', '=': ''}[m.group(0)], rv)
这里是实现的例子
user1 = UserModel(user_id=str(uuid_url64()), name='rizkiaditya')