Python 为什么我的django url配置未能包含另一个应用程序url模块
我有一个项目,其根url conf内容为:Python 为什么我的django url配置未能包含另一个应用程序url模块,python,django,Python,Django,我有一个项目,其根url conf内容为: from django.conf.urls import patterns, include, url import funnytest urlpatterns = patterns( url(r'^funnytest/', include('funnytest.urls')), url(r'^helloworld/', funnytest.views.hello), ) funnytest是本项目的一个应用程序,在funnytest中我编写了一个
from django.conf.urls import patterns, include, url
import funnytest
urlpatterns = patterns(
url(r'^funnytest/', include('funnytest.urls')),
url(r'^helloworld/', funnytest.views.hello),
)
funnytest是本项目的一个应用程序,在funnytest中我编写了一个模块urls.py来配置此应用程序的请求:
from django.conf.urls import patterns, include, url
from views import *
urlpatterns = patterns(
url(r'^hello/$', hello),
)
当我访问localhost/funnytest/hello/时,返回一个dispath错误,表示没有这样的模式
当我访问localhost/helloworld时,它工作得很好
为什么呢,应该如何配置~ 如果查看patterns函数的定义:
def patterns(prefix, *args):
pattern_list = []
for t in args:
if isinstance(t, (list, tuple)):
t = url(prefix=prefix, *t)
elif isinstance(t, RegexURLPattern):
t.add_prefix(prefix)
pattern_list.append(t)
return pattern_list
您将看到,模式在url模式列表之前有一个参数“prefix”
from django.conf.urls import patterns, include, url
import funnytest
urlpatterns = patterns(
'',
url(r'^funnytest/', include('funnytest.urls')),
url(r'^helloworld/', funnytest.views.hello),
)
from django.conf.urls import patterns, include, url
from views import *
urlpatterns = patterns(
'',
url(r'^hello/$', hello),
)
在这两个文件中尝试以下操作:添加一个空字符串作为模式的第一个参数
from django.conf.urls import patterns, include, url
import funnytest
urlpatterns = patterns(
'',
url(r'^funnytest/', include('funnytest.urls')),
url(r'^helloworld/', funnytest.views.hello),
)
from django.conf.urls import patterns, include, url
from views import *
urlpatterns = patterns(
'',
url(r'^hello/$', hello),
)
下面是关于view prefix参数的更好的讨论: