web-dev-qa-db-ja.com

ページが見つかりません404 Django site?

Djangoのサイトのチュートリアルに従って、簡単な投票アプリを作成しています。ただし、mySite/urls.pyで正規表現を定義しているにもかかわらず、Djangoは "//127.0.0.1:8000/polls"を解決できません。これをvirtualenv、最新のDjango(1.7)がインストールされています。

mySite/urls.py:

from Django.conf.urls import patterns, include, url
from Django.contrib import admin

urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^polls/', include('polls.urls')),
)

mySite/polls/urls.py:

from Django.conf.urls import patterns, url
from polls import views

urlpatterns = patterns('',
url(r'^$', views.index, name='index'), 
)

mySite/polls/views.py:

from Django.shortcuts import render
from Django.http import HttpResponse
def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

mySite/settings.py:

 ...
 INSTALLED_APPS = (
'Django.contrib.admin',
'Django.contrib.auth',
'Django.contrib.contenttypes',
'Django.contrib.sessions',
'Django.contrib.messages',
'Django.contrib.staticfiles',
'polls',
 ) 
  ....
 ROOT_URLCONF = 'mySite.urls'

私が得ているエラー:

Using the URLconf defined in mySite.urls, Django tried these URL patterns, in this order: ^admin/  
The current URL, polls, didn't match any of these.
30
jerryh91

同じ問題がありました。

「mysite」という名前のディレクトリが複数あるため、混乱していたことがわかりました。

ルートの「mysite」ディレクトリ(「manage.py」を含む)に誤ってurls.pyファイルを作成し、Webサイトのコードに貼り付けました。

それを修正するために、このファイルを削除し、mysite/mysiteディレクトリ( "settings.py"を含む)に移動し、既存の "urls.py"ファイルを変更し、コードをチュートリアルコードに置き換えました。

簡単に言うと、urls.pyファイルが正しいディレクトリにあることを確認してください。

69
ZakJ

URL構成が127.0.0.1:8000/pollsとして定義されているため、Djangoはr'^polls/'を解決できません。

通常の回避策:

mySite/urls.py:

from Django.conf.urls import patterns, include, url
from Django.contrib import admin

urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^polls/', include('polls.urls')),
)

注:Django=がinclude()に遭遇すると、その時点までに一致したURLの部分を切り取り、残りの文字列を、さらに処理するために含まれるURLconfに送信します。

mySite/polls/urls.py:

from Django.conf.urls import patterns, url
from polls import views

urlpatterns = patterns('polls.views',
url(r'^$', 'index', name='index'), 
)

注:urlpatternsの各エントリにそれを入力する代わりに、patterns()関数の最初の引数を使用して、適用するプレフィックスを指定できます各ビュー機能。

応答の場合

127.0.0.1:8000/pollsにアクセスする場合注:スラッシュなし

ビューベースのURLを使用

url(r'^polls', 'polls.views.index', name='index'),

これで、末尾のスラッシュなしで127.0.0.1:8000/pollsにアクセスできるようになりました。

8
Raja Simon

http://yourdomain.com/ にアクセスしており、「/」に定義されたURLがありません。

次の2つのオプションがあります。

  1. 投票アプリケーションのインデックスページにアクセスする場合は、次のURLを入力する必要があります:yourdomain.com/polls

  2. MySite/urls.pyファイルを変更して、yourdomain.comからアクセスすることもできます。

    from Django.conf.urls import patterns, include, url
    
    from Django.contrib import admin
    urlpatterns = patterns('',
    
    url(r'^admin/', include(admin.site.urls)),
    
    url(r'^$', include('polls.urls')),
    
    )
    
4
Emily

チュートリアルに従ってこの問題を抱えている初心者向けに答えを明確にするために、プロジェクトルートURLconfはsettings.pyと同じフォルダーにあります。

 mysite/mysite/urls.py

必ず「include」をインポートしてください。コードは次のようになります。

from Django.conf.urls import include, url
from Django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^polls/', include('polls.urls')),
]

Mysite/mysite/settings.pyで:

行は次のとおりです。

ROOT_URLCONF = 'mysite.urls'

新しいルートURLconfを新しく作成する必要はありません。

2
jwndev

Urls.pyフォルダーを外側のMySiteフォルダーに配置します。mySite/ urls.pyではなくmySite/mySite/urls.pyのように内側に配置することになります。

チュートリアルをしたときに同じ間違いに遭遇しました

1
duyinhao

ROOT urls.pyを置く場所に応じて、ROOT_URLCONFIGを適切に設定します。manage.pyを含む最も外側のフォルダーにある場合、「urls」は問題ありません。他のフォルダにある場合は、「。urls」を実行する必要があります

jerryh91 への回答に対するクレジット

仕組みの詳細については、 How Djangoリクエストの処理

1
javidazac

127.0.0.1:8000/pollsにアクセスする別の方法は、127.0.0.1:8000にアクセスするときにブラウザーをリダイレクトすることです。それは次のように.../mysite/mysite/urls.pyを編集することで行われます:

from Django.conf.urls import include, url
from Django.contrib import admin
from polls import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^polls/', include('polls.urls', namespace='polls')),
    url(r'^$', views.index, name='index'),
]
1
Muhammad Yousaf

私は同じ問題を抱えていましたが、 http:// server:port / の後に/ pollsを追加することで解決しました。サーバーの最終アドレスは次のようになります。 http:// server:port /投票

0
Nishat Ahmed

2017-10-05_12:03〜/ mysite/mysite
$ vi urls.py 2017-10-05_12:04〜/ mysite/mysite
$ cd ../ .. 2017-10-05_12:04〜
$ mv mysite SENSIBLE_NAME_Django_ROOT

0
user50619

私の場合、それはstupid間違いでした。プラグインDjango-tinymceを統合してテストしたかったのです。 this ガイドに従って、ステップ3を実行し、変数をパスにエクスポートしました。サーバーが再び実行されると、次のメッセージを示すnot foundエラーを受け取りました。

Testtinymce.urlsで定義されたURLconfを使用して、Djangoは次の順序でこれらのURLパターンを試しました:....

しかし、変数Django_SETTINGS_MODULEのエクスポートを思い出すまで、正確にそれが何であるかを知りませんでした

ランニング unset Django_SETTINGS_MODULEターミナルで私の問題を解決しました。それが誰かにも役立つことを願っています。

0
pbalazek

Mysite/urls.pyに次の行を追加します

url(r'^$', views.index, name='index'),

確認してください。プロジェクトが正しく作成されていれば、動作するはずです。そうでなければ、上記のようなものがたまたま複数のファイルを持っているので混乱しているかもしれません。

0
srilekha.bikki

実際問題は、mysite/urls.pyとpolls/urls.pyは2つの異なるファイルに気づかず、mysite/urls.pyを入れる代わりにpolls/urls.pyを変更したことです。 ... mysite\mysiteフォルダーのurls.pyファイル。

0