Mar*_*oni 9 django url identifier
我实际上在django项目中工作,我不确定访问一个特定对象页面的URL的最佳格式.
我在想这些替代方案:
1) Using the autoincremental ID => .com/object/15
Run Code Online (Sandbox Code Playgroud)
这是最简单和众所周知的方法."id_object"是数据库引擎在保存对象时生成的自动增量ID.我以这种方式找到的问题是URL是简单的可迭代的.因此,我们可以通过增加URL中的ID来创建一个简单的脚本并访问所有页面.也许是一个安全问题.
2) Using a <hash_id> => .com/object/c30204225d8311e185c3002219f52617
Run Code Online (Sandbox Code Playgroud)
"hash_id"应该是一些字母数字字符串值,例如使用uuid函数生成.这是一个好主意,因为它不可迭代.但生成"随机"唯一ID可能会导致一些问题.
3) Using a Slug => .com/object/some-slug-generated-with-the-object
Run Code Online (Sandbox Code Playgroud)
Django为模型提供了一个"slug"字段,它可用于识别URL中的对象.我在这种情况下发现的问题是slug可能会在时间上发生变化,从而产生损坏的URL.如果某些搜索引擎(如Google)已将此网址编入索引,则可能会将用户引导至"未找到"网页,我们的网页排名可能会降低.冻结弹头可以解决问题.我的意思是,仅在"添加"操作中保存slug,而不是在"Update"操作中保存.但是slu the现在可以代表旧的或不正确的东西.
所有选项都有优点和缺点.可能会使用它们的某些组合可以解决一些问题.你觉得怎么样?
我认为最好的选择是:
.com/object/AUTOINCREMENT_ID/SLUG_FIELD
Run Code Online (Sandbox Code Playgroud)
为什么?
第一个原因: AUTOINCREMENT_ID对于用户识别对象很简单.例如,在电子商务网站中,如果用户想要多次访问该页面(因为他不确定购买该产品),他将识别该URL.
第二个原因: slug字段将防止某人在网页上进行迭代并使人们更清楚URL.
这.com/object/10/ford-munstang-2010比清楚的更清楚.com/object/c30204225d8311e185c3002219f52617
| 归档时间: |
|
| 查看次数: |
1475 次 |
| 最近记录: |