我在解决如何生成用户友好链接以分享产品方面遇到了一些问题。
我目前正在使用/product/{uuid4_of_said_product}
哪个工作得很好 - 但它有点用户不友好 - 它有点长而丑。
我不想使用和id,因为它会让用户猜测"产品。这不是一个太大的问题 - 我想避免它。
您是否有任何关于如何根据唯一商品ID或uuid生成独特,用户友好,简短的共享网址的提示?
答案 0 :(得分:1)
您是否尝试过这些https://github.com/corpix/shortid和一个django https://github.com/nebstrebor/django-shortuuidfield
答案 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)