【发布时间】:2012-05-20 13:21:16
【问题描述】:
我正在尝试为我的数据库对象生成 URL。 I've read 我不应该对 URL 使用主键,对于这个特定的模型来说,存根不是一个好的选择。根据该链接中的建议,我在 Python 解释器中使用 zlib.crc32() 并发现值通常返回负数,这是我不希望在我的 URL 中出现的。我应该使用更好的哈希来生成我的网址吗?
更新:我最终使用了 David 下面建议的按位 XOR 掩码方法,效果非常好。感谢大家的意见。
【问题讨论】:
-
不完全符合您的要求(因此不是答案),但您可以考虑对标题进行 slug-ifying 并使用它。基本上你降低/擦洗/减少直到它是合法的,将它作为一个字段存储在对象中(索引!),然后在 urls.py 中有一个匹配它的模式。
-
查看urlauth 应用程序。它不能满足您的需求,但您可以看看它如何构成 URL、将密钥保存到 DB 并在请求时验证 URL。
-
@PeterRowell 我更喜欢使用数值,因为这些可能不会被 URL 任意访问。
标签: python django design-patterns url hash