django-异常值:没有名为urls的模块

时间:2017-07-14 13:46:55

标签: python django module python-import

我创建了一个urlsviews文件夹,例如templates,但它无效。 我收到错误: Exception Value: No module named urls

这是我的项目的样子:

requirements.txt:

Django==1.6.5
pymongo==2.8

├── 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)),
)

app / urls / test.py:

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

app / views / 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")

3 个答案:

答案 0 :(得分:0)

由于您尝试使其像模块一样工作,请尝试添加__init__.py 在url和views文件夹中包含以下内容

from .test import *

要根据您的问题进一步解释,__init__.py将放在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次观看中导入任何内容。

答案 1 :(得分:0)

django架构的想法是为每个应用程序提供网址和视图的文件。请记住urls.py存储应用中的所有网址,如果您想扩展它,请尝试创建另一个应用。我建议用tests.py删除该文件夹,并将文件直接构造到DjangoApp文件夹中。

另外,正如上面的评论所说的那样,对于python来处理像模块这样的文件夹你应该创建一个名为__init__.py的文件,请查看What is __init__.py for?

答案 2 :(得分:0)

您的应用程序文件结构和配置存在问题。 请阅读:https://docs.djangoproject.com/en/1.11/intro/tutorial01/

例如: 您应该将view.py中的函数分配给它的url,所以在这一行:

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

将其更改为:

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