我想根据标题为实体创建网址路径。
例如,如果图书实体的标题是“罗密欧与朱丽叶”,我希望网址路径为
http://example.com/book/romeo-and-juliet
此外,如果图书标题为“ Romeo& Juliet ”,我将如何处理此网址路径。最后,是否建议使用此方法,或者我应该使用实体的ID创建URL路径,如下所示:
http://example.com/book/4644337115725824
感谢任何建议。
答案 0 :(得分:1)
取决于您如何检索图书。 App引擎使用ndb,每本书的密钥应该是唯一的。所以“罗密欧与朱丽叶”和“罗密欧与朱丽叶”之间会有所不同。
此外,您还需要为每个标题提供一种独特方式,并且对于包含相同标题(例如,不同国家/地区)的书籍来说,这将是很难的。
一种方法是同时使用两者。生成的ID和标题如
/12345678/mybook
根据你的评论,你不会被罪恶感到困惑,但搜索引擎优化和网友友好的字符串。我建议搜索一下,你找到的不仅仅是你需要的。我不是URL友好网址的专家,但它们很麻烦,需要逃避规则等。
例如'romeo&由于空间和'&',juliet'将不得不逃脱。
那么您最终会为您的应用创建约定。例如,一个简单的规则是:
所以你最终会得到'romeo_and_juliet',它比'romeo& juliet'更友好。
如果您担心的字符串主要用于:
encoded_param = urllib.urlencode(book_title)
我喜欢使用像
这样的网址/books/[key]/romeo_and_juliet
其中[key]是书key
,可以是字符串也可以是id。