Django无法路由网址(简单问题)

时间:2010-09-01 02:14:29

标签: python django django-urls

我正在做一些愚蠢的事情,我不确定它是什么。我在django项目的根目录中有以下urls.py:

from django.conf.urls.defaults import *
from django.conf import settings

urlpatterns = patterns('',
    (r'^$', include('preview_signup.urls')),
)

在我的preview_signup模块(django app)中,我有以下urls.py文件:

from django.conf.urls.defaults import *

urlpatterns = patterns('django.views.generic.simple',
    (r'^thanks/$', 'direct_to_template', {'template': 'thankyou.html'})
)

当我转到http://localhost:8000/thanks/时,上面的urls.py不起作用。但如果改变了这个:

from django.conf.urls.defaults import *

urlpatterns = patterns('django.views.generic.simple',
    (r'^$', 'direct_to_template', {'template': 'thankyou.html'})
)

我去http://localhost:8000/它运作正常。

我做错了什么?

2 个答案:

答案 0 :(得分:3)

此代码应该有效:

urlpatterns = patterns('',
    (r'^', include('preview_signup.urls')),
)

$(行尾)刚删除。

答案 1 :(得分:1)

当出现问题时(或者即使没有),请仔细阅读django docs。以下是上述链接的摘录:

from django.conf.urls.defaults import *

urlpatterns = patterns('',
    (r'^weblog/',        include('django_website.apps.blog.urls.blog')),
    (r'^documentation/', include('django_website.apps.docs.urls.docs')),
    (r'^comments/',      include('django.contrib.comments.urls')),
)
  

请注意正则表达式   这个例子没有$   (字符串结尾匹配字符)但是   包括一个斜杠。每当   Django遇到include(),它会发生错误   关闭匹配的URL的任何部分   直到那一点并发送   保留字符串到包含的   URLconf用于进一步处理。