URL结构看起来喜欢这个:<domain>/<version>/<collection>/<sub-collection>/<page>
域是任何a-zA-Z0-9-_
,版本是任何a-zA-Z0-9-_.
(但可能只是1.0
,1.1
,2.0.0
等),集合和子集合都是遵循<domain>
约束的可选组。
当前的正则表达式是:r'^(?P<domain_slug>[a-zA-Z0-9-_]*)/(?P<version_slug>[a-zA-Z0-9-_.]*)/(?P<slug>[a-zA-Z0-9-_]+)/$
。
如何捕获可选位置,确保最后一个段始终是页面?
此外,这甚至是一个好主意吗?通过 Django URL conf 传递它并让视图函数处理所有工作会更好吗?
示例网址可能包括:administration/5.0.3/reset-user-password
user/1.0/getting-started/setting-up-an-account
development/3.2/authentication/acl/creating-aco
(.*/)([^/]*)$
会将页面放入 2 美元,而您必须以 1 美元解析的内容。
OP补充说:
以上起到了作用。作为参考,完整的正则表达式变成了(多行以提高可读性):
^(?P<domain>[a-zA-Z0-9_-]*)/
(?P<version>[a-zA-Z0-9-_.]*)/
(?P<collections>.*)/
(?P<page>[^/]*)$