2017-07-14 1 views
0

templatesのようにurlsviewsというフォルダを作成しましたが、動作しません。 は、私はエラーを取得しています:django-例外値:URLという名前のモジュールがありません

requirements.txt:

Django==1.6.5 
pymongo==2.8 

Exception Value: No module named urls

ここに私のプロジェクトは次のようになります。

├── DjangoProject 
│   ├── DjangoProject 
│   │   ├── app 
│   │   │   ├── __init__.py 
│   │   │   ├── __init__.pyc 
│   │   │   ├── models.py 
│   │   │   ├── models.pyc 
│   │   │   ├── templates 
│   │   │   ├── tests.py 
│   │   │   ├── urls 
│   │   │   │   └── test.py 
│   │   │   └── views 
│   │   │    └── test.py 
│   │   ├── __init__.py 
│   │   ├── __init__.pyc 
│   │   ├── settings.py 
│   │   ├── settings.pyc 
│   │   ├── urls.py 
│   │   ├── wsgi.py 
│   │   └── wsgi.pyc 
│   └── manage.py 
└── requirements.txt 

settings.pyファイル:

INSTALLED_APPS = (
    'DjangoProject.app', 
    ........ 
) 
ROOT_URLCONF = 'DjangoProject.app.urls' 

DjangoProject/urls.py:

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

アプリ/のURL/test.py:

from django.conf.urls import patterns, url 
urlpatterns = patterns('DjangoProject.app.views.test', 
     url(r'^/create/$','first_view',name='first_view'), 
) 

アプリ/ビュー/test.py:

from django.shortcuts import render, render_to_response 
from django.http import HttpResponse 
from django.template import loader 
from django.template import RequestContext 

def first_view(request): 
    return HttpResponse("Hi") 
+0

私はあなたのURLとビューファイルと呼ばきたかを理解していません。実際には両方ともtest.pyと呼ばれ、URLと呼ばれる内部のディレクトリとビューですか?もしそうなら、なぜですか? –

+0

はい、どちらもtest.pyと呼ばれ、urlsとviewsと呼ばれるディレクトリ内にあります。私の計画は、1つの主要なアプリを作成し、そのウェブマスターのようなリンクで呼び出されるさまざまなアプリ内に作成することです。 __init__.pyはこれを助けるでしょうか? – ashutosh

+0

まあ、しないでください。これらのファイルをappディレクトリに移動し、urls.pyとviews.pyという名前で呼び出します。 –

答えて

0

あなたはそれがURLの両方で__init__.py を追加するモジュールの試みのように動作するようにしようとしているとビューは、あなたの質問__init__.py意志の面でさらにそれを説明するには、以下の内容

from .test import * 

のフォルダので、 DjangoProject/DjangoProject/app/urls/DjangoProject/DjangoProject/app/views/に配置してください。

ROOT_URLCONF = 'DjangoProject.app.urls'を使用するには、すべてを__init__.pyファイルにインポートする必要があります。

ビューをインポートする場合は、ここを参照してください。

from django.conf.urls import patterns, url 
urlpatterns = patterns('DjangoProject.app.views.test',   
    url(r'^/create/$','first_view',name='first_view'), 
) 

あなたも、ビューの__init__.pyに何かをインポートする必要はありません。

+0

http://pythoncentral.io/package-python-django-application-reusable-component/またはhttps://110j.wordpress.com/2009/06/17/organize-django-applications/ – ashutosh

+0

上記の2つはリンクです私は見つけた。私は1つの主要なアプリのためのビューとURLのためのモジュール(フォルダ)を作成したい。私は__init__.pyがこれを助けてくれることを理解しましたが、どうやって知りませんか?あなたは私にこれを詳しく説明しますか?また、settings.pyの私のROOT_URLCONFであり、DjangoProjectのURL/urls.pyは正しいですか? – ashutosh

+0

'__init __。py'ファイルはモジュールとして使用するすべてのフォルダに入ります。この場合、 'DjangoProject/DjangoProject/app/urls/__ init __。py'に入り、同様にviewsフォルダに入ります。 また、モジュールレベルでアクセスしたい '__init __。py'に物をインポートする必要があります。 – pyvkd

0

djangoアーキテクチャのアイデアは、すべてのアプリケーションのURLとビュー用のファイルを持つことです。 urls.pyにはアプリからのすべてのURLが保存されていますが、拡張したい場合は別のアプリを作成してみてください。私がお勧めするのは、tests.pyの両方のフォルダを削除し、DjangoAppフォルダに直接ファイルを構成することです。

また、上記のコメントが正しく言うように、モジュールのようにフォルダを扱うには、__init__.pyというファイルを作成し、What is __init__.py for?をチェックしてください。

0

アプリケーションのファイル構造と設定に問題があります。 これを読む:https://docs.djangoproject.com/en/1.11/intro/tutorial01/

たとえば、 あなたの機能を表示する必要があります。この行のため、そのURLへのPY:

url(r'^/create/$','first_view',name='first_view'), 

に変更し、それを:

url(r'^/create/$', views.first_view, name='first_view'), 
関連する問題