Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python url捕获的正则表达式(\w+)与某些url不匹配_Python_Regex_Django - Fatal编程技术网

Python url捕获的正则表达式(\w+)与某些url不匹配

Python url捕获的正则表达式(\w+)与某些url不匹配,python,regex,django,Python,Regex,Django,my_应用程序的url.py配置文件的两行如下所示。它们几乎相同,只有第二个附加了uuid4 # preview views to allow us to preview stuff url(r'^(?P<hash>\w+)/preview/$', Start.as_view(), {'preview':True}, name='preview'), url(r'^(?P<hash>\w+)/preview/(?P<uuid>[a-f0-9]{8}-?[a-f

my_应用程序的url.py配置文件的两行如下所示。它们几乎相同,只有第二个附加了uuid4

# preview views to allow us to preview stuff
url(r'^(?P<hash>\w+)/preview/$', Start.as_view(), {'preview':True}, name='preview'),
url(r'^(?P<hash>\w+)/preview/(?P<uuid>[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12})/$', PreviewController.as_view(), name='previewcontroller'),
以下URL可以正常工作:

以下url产生以下错误所有哈希值均有效,但这不应影响url解析:

内部服务器错误:/my_app/841211121/preview/

NoReverseMatch at/my_app/841211121/预览/反向 带有参数“”和关键字参数的“previewcontroller” “{'uuid':无,'hash':'841211121'}”未找到。1模式 尝试: [my_app/?P\w+/preview/?P[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}/$]

请求方法:获取请求URL: Django版本:1.10


Regex101.com说url当然应该与转义斜杠匹配。究竟为什么第二组url与预览url不匹配,当url没有附加uuid字符串时,是什么促使url解析器尝试将它们与previewcontroller匹配?

Django正确解析/my_app/841211121/preview/并运行正确的视图


Django运行Start视图时出现问题。似乎反向调用或{%url%}模板标记失败。

问题出在您尚未显示的开始视图或模板中。看起来一个反向调用或{%url%}模板标记失败了。啊,谢谢-我会去那里看看,然后报告我的发现。是的;模板被错误地传递了一个上下文变量url链接,该链接恰好与previewcontroller匹配。如果你把它贴进去,我就接受答案。非常感谢阿拉斯代尔!