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

标签 python api flask flask-sqlalchemy

我正在使用 Flask 和 Flask-SQLAlchemy 构建 Rest API。只是想知道,有什么方法可以生成唯一的ID字符串主键吗?该 key 将用于身份 API 端点,例如:

POST v0.2/users/4q2VolejRejNmGQB/messages

而不是

POST v0.2/users/123/messages

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

最佳答案

我刚刚得到了解决方案。我使用 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')

关于python - 如何在flask-sqlalchemy中为API端点设置唯一的字符串主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43169683/

相关文章:

python - 列值到行值的 Numpy 转换

Angular2-捕获错误并将其显示在 View 中

api - 为什么GainNode连接不起作用?

python - 无法从 Python 提交 mysql 查询

html - Flask 图标无法在 Google Chrome 上运行

python - gmailR错误 "Only AF_INET sockets are currently supported on jython"

python - 对应于 Python 子列表中条件的元素

python - 使用基于另一行的条件删除组行

php - 这是什么代码?

flask - 为什么 Gunicorn 仅当 Flask 安装在 virtualenv 之外时才工作?