2

ルート 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 では、このアプリのリクエストを構成するモジュール urls.py を作成します。

from django.conf.urls import patterns, include, url
from views import *
urlpatterns = patterns(
url(r'^hello/$', hello),
)

localhost/funnytest/hello/ にアクセスすると、そのようなパターンがないというディスパス エラーが返されます

localhost/helloworld にアクセスすると、うまくいきます。

什么呢に、このように配置します~

4

1 に答える 1

5

パターン関数の定義を見ると:

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 パターンのリストの前に引数「プレフィックス」を取ることがわかります。

両方のファイルで次のことを試してください: パターンの最初の引数として空の文字列を追加します。

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),
)
于 2012-09-10T12:19:47.647 に答える