首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django url regex中消失的`+`

Django url regex中消失的`+`
EN

Stack Overflow用户
提问于 2017-05-05 14:16:29
回答 1查看 114关注 0票数 0

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

代码语言:javascript
复制
urlpatterns = [
    url(r'^load/(?P<bd>[0-9]+)/$', views.home, name='home_with_load')
]

这个urls.py由主urls.py包含,其名称空间如下所示:

代码语言:javascript
复制
url(r'^mission-control/', include('mission_control.urls', namespace='mission-control'))

当我转到http://localhost/mission-control/load/5 (一个个位数整数)时,我被带到了预期的视图。然而,当我转到url http://localhost/mission-control/load/54 (一个两位整数)时,我会被带到django错误调试页面,这表明我无法匹配这个模式:

代码语言:javascript
复制
^mission-control/ ^load/(?P<bd>[0-9])/$ [name='home_with_load']

注意,应该跟随+[0-9]已经消失了。这就解释了为什么我的两位数整数不能匹配。

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

调试注意事项:

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-05 17:20:48

任务控制中心urls.py把这个放在最上面。

代码语言:javascript
复制
# -*- coding: utf-7 -*-

把它变成

代码语言:javascript
复制
# -*- coding: utf-8 -*-

修复了问题,我的+开始出现。

不知道我从什么引导程序/炊具/模板/示例中得到了utf-7。我的错,伙计们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43807274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档