从uuid4共享URL生成?

时间:2016-06-01 12:36:04

标签: python django url sharing

我在解决如何生成用户友好链接以分享产品方面遇到了一些问题。

我目前正在使用/product/{uuid4_of_said_product} 哪个工作得很好 - 但它有点用户不友好 - 它有点长而丑。

我不想使用和id,因为它会让用户猜测"产品。这不是一个太大的问题 - 我想避免它。

您是否有任何关于如何根据唯一商品ID或uuid生成独特,用户友好,简短的共享网址的提示?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

正如塞尔克所说,我决定使用base64编码和解码:

在模型中,我的“link”属性现在是从标准网址+ base64.urlsafe_b64encode(str(media_id))

构建的

我用来匹配base64模式的url模式:

base64_pattern = r'(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$'

最后在视图中我们解码id来加载正确的数据: media_id = base64.urlsafe_b64decode(str(media_id))

media = Media.objects.get(pk=media_id)