Python 消失的+;`在Django url正则表达式中

Python 消失的+;`在Django url正则表达式中,python,regex,django,Python,Regex,Django,我在Django中创建了以下url。我的目标是匹配并捕获任意长度的整数,如bd urlpatterns = [ url(r'^load/(?P<bd>[0-9]+)/$', views.home, name='home_with_load') ] 当我转到(一个单位数整数)时,我被带到期望的视图。但是,当我转到url(一个两位数的整数)时,我被带到django错误调试页面,该页面显示我未能匹配此模式: ^mission-control/ ^load/(?P<bd>

我在Django中创建了以下url。我的目标是匹配并捕获任意长度的整数,如
bd

urlpatterns = [
    url(r'^load/(?P<bd>[0-9]+)/$', views.home, name='home_with_load')
]
当我转到(一个单位数整数)时,我被带到期望的视图。但是,当我转到url(一个两位数的整数)时,我被带到django错误调试页面,该页面显示我未能匹配此模式:

^mission-control/ ^load/(?P<bd>[0-9])/$ [name='home_with_load']
^mission control/^load/(?P[0-9])/$[name='home'U with_load']
请注意,应该在
[0-9]
后面的
+
已消失。这就解释了为什么我的两位数整数不匹配

为什么
+
消失了?我的正则表达式中是否存在一些错误,使
+
变得毫无意义,从而在正则表达式编译期间将其删除


调试说明:

  • 使用
    \d+
    时,我得到了相同的结果。它变成了
    \d
  • 我已经确保杀死并重新启动django,以确保重新编译我的url正则表达式。我做了一些毫无意义的更改(比如更改
    bd
    )并确认它们生效并显示在错误调试页面上
  • 我临时在任务控制url.py中提出了一个
    ValueError
    ,以确认它正在被读取

任务控制URL.py的顶部有这个

# -*- coding: utf-7 -*-
改成

# -*- coding: utf-8 -*-
修复了该问题,我的
+
开始显示


不确定我从哪个引导程序/cookiecutter/template/example获得utf-7。我的错,伙计们。

Django绝对不会“改变”您的regexp中的任何内容。此外,代码段和错误消息不匹配(在第二种情况下,捕获的部分名为“bd”,而不是“myvar”)。抱歉,这是清理我的问题时出现的错误。现在修复了。Django仍然没有更改您的正则表达式,所以您的问题在其他地方。您的url模式是在主url.py中还是包括在内?您是否有任何过时的url.pyc文件?(提示:清理项目目录中的所有.pyc文件)。如果在URL.py文件的顶部添加类似“raise ValueError('这是一个测试')”的内容,会发生什么?它会崩溃还是你的网站还能工作?如果是,则您没有编辑righ URL.py文件;)你有一个没有+的URL版本。@Brunodesshuilliers,谢谢你的建议。我尝试删除所有的.pyc文件,但没有任何更改。我将'raisevalueerror(“这是一个测试”)放在url.py中,错误确实被抛出了。
# -*- coding: utf-8 -*-