如何在flask-sqlalchemy中为API端点设置唯一字符串主键

时间:2017-04-02 14:48:40

标签: python api flask flask-sqlalchemy

我正在使用Flask dan Flask-SQLAlchemy构建Rest API。只是想知道,有没有办法生成一个唯一的ID字符串主键?此密钥将用于标识API端点,例如:

POST v0.2 / users / 4q2VolejRejNmGQB / messages

而不是

POST v0.2 / users / 123 / messages

我正在玩http://hashids.org/,但似乎有问题,因为在我保存数据后,主键会自动生成,而hashids需要生成给定的整数

1 个答案:

答案 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')