我是Python,Django 1.9和整体正则表达式的新手。所以我想在urls.py
中写这样的东西search/doc_name/language/?id
doc_name
,允许任何名称/案例/长度等,如下所示:'My Fave Doc 12'
'en'
id
,仅允许数字。这就是我所拥有的,有人可以指出我哪里出错了吗?
url(r'^search/[\w-]+/[a-z]{2}+/(?P<id>[0-9]+)$', '....
答案 0 :(得分:2)
doc_name
不允许空格。如果需要,可在字符集中添加空格。确保将它放在短划线([\w -]+
)之前。如果允许使用其他空格,则使用\s
代替([\w\s-]+
)。
此外,该语言目前还可匹配任何数量的字母。移除+
并仅保留[a-z]{2}
。 +
表示重复一次或多次,默认情况下任何内容只匹配一次。
答案 1 :(得分:0)
你应该真的避免在你的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')