Django URL 正则表达式问题
Django URL issue with regular expressions
我是 Python、Django 1.9 和整体正则表达式的新手。所以我想在 urls.py
中写这样的东西
search/doc_name/language/?id
- 其中
doc_name
,允许 any name/case/length 等,像这样:'My Fave Doc 12'
- where 语言,允许 两个字母 像这样:
'en'
- 其中
id
,只允许 数字 。
这就是我的,谁能指出我错在哪里?
url(r'^search/[\w-]+/[a-z]{2}+/(?P<id>[0-9]+)$', '....
doc_name
不允许 space。如果需要,请在字符集中添加一个 space。确保将它放在破折号 ([\w -]+
) 之前。如果允许其他白色space,则使用\s
代替([\w\s-]+
)。
此外,该语言目前可以匹配任意数量的字母。删除 +
并仅保留 [a-z]{2}
。 +
表示重复一次或多次,默认只匹配一次。
你真的应该避免在你里面有空格URL,我建议如下:
url 格式: /search/<doc_name>/<id>/?lang=<language>
在urls.py:
url(r'^search/(?P<doc_name>[\w]+)/(?P<id>[0-9]+)/$'), your_view)
在views.py:
lang = request.GET.get('lang', 'en')
doc_name = request.POST.get('doc_name')
id = request.POST.get('id')
我是 Python、Django 1.9 和整体正则表达式的新手。所以我想在 urls.py
中写这样的东西search/doc_name/language/?id
- 其中
doc_name
,允许 any name/case/length 等,像这样:'My Fave Doc 12'
- where 语言,允许 两个字母 像这样:
'en'
- 其中
id
,只允许 数字 。
这就是我的,谁能指出我错在哪里?
url(r'^search/[\w-]+/[a-z]{2}+/(?P<id>[0-9]+)$', '....
doc_name
不允许 space。如果需要,请在字符集中添加一个 space。确保将它放在破折号 ([\w -]+
) 之前。如果允许其他白色space,则使用\s
代替([\w\s-]+
)。
此外,该语言目前可以匹配任意数量的字母。删除 +
并仅保留 [a-z]{2}
。 +
表示重复一次或多次,默认只匹配一次。
你真的应该避免在你里面有空格URL,我建议如下:
url 格式: /search/<doc_name>/<id>/?lang=<language>
在urls.py:
url(r'^search/(?P<doc_name>[\w]+)/(?P<id>[0-9]+)/$'), your_view)
在views.py:
lang = request.GET.get('lang', 'en')
doc_name = request.POST.get('doc_name')
id = request.POST.get('id')