python - Django URLConf 不匹配有效的正则表达式

标签 python regex django

我在使用 Django urlconf 时遇到了一个大问题。我无法让正则表达式匹配 在 urls.py 中。

这是我正在做的:

在我的 javascript 中有

var source = 'http://127.0.0.1:8000/quiltmaker/block'+i+'/shoefly'+i+'/';

记录为

img.src http://127.0.0.1:8000/quiltmaker/block3/shoefly3/

我的 urlpatterns 是:

   urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    url(r'^about/$', views.about, name='about'),
    url(r'block(\d{1,3})/([a-z]{7})(\d{1,2})/$', views.block),
)

正则表达式在 iPython 解释器中工作:

js = 'block3/shoefly3/'

r = re.compile(r'block(\d{1,3})/([a-z]{7})(\d{1,2})/$')

r
Out[60]: re.compile(r'block(\d{1,3})/([a-z]{7})(\d{1,2})/$')

m = r.search(js)

m
Out[62]: <_sre.SRE_Match at 0x10f262ae0>

m.span()
Out[63]: (0, 16)

但是 Django 从不调用 View 。

如果 urlpattern 是

它确实有效
url(r'block(\d{1,3})/shoefly(\d{1,2})/$', views.block)

请帮忙。这让我比现在更疯狂。

最佳答案

感谢 Peter DeGlopper 为我指明了正确的方向。 urlconf 没有将我发送到 View ,因为 View 需要两个参数而我发送了三个。在 View 中添加另一个参数就可以了:

之前

def block(request, idx, blockno)

之后

def block(request, idx, type, blockno)

关于python - Django URLConf 不匹配有效的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27535136/

相关文章:

Python:倒序单词

javascript - 如何从 rgb/rgba 字符串中获取红绿蓝值?

python - 如何使用 Django 过滤一对一的通用关系?

python - 如何使用python脚本安装Django项目requirement.txt

c# - .Net 正则表达式 : what is the word character\w?

python - get_absolute_url 的 Django NoReverseMatch 问题

python - Django 1.8 与 postgres 迁移错误

python - pandas DataFrame 列中值的计数频率

python - 对称矩阵及其转置的逻辑比较

Javascript 或 jQuery - 替换 (' with (\' 和 ') with\' )