python - 从views.py导入不适用于应用程序

标签 python django import django-views

我正在使用 django,我正在尝试让一个简单的应用程序发挥作用。

该应用程序应该提供一个简单的“Hello world” View ,但是 my_app/urls.py无法从 my_app/views.py 导入方法.

我的应用名为SocialUrl

这里是my-project/urls.py

from django.conf.urls import patterns, include, url
# from SocialUrl.views import test

from django.contrib import admin
admin.autodiscover()

    urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^/su/', include('SocialUrl.urls')),
    # url(r'^$', test),
)

这里是my-app/urls.py

from django.conf.urls import patterns, url
from . import views

urlpatterns = patterns('',
    # ex: /polls/
    url(r'^test$', views.test()),
)

这里是my-app/views.py

from django.shortcuts import render
from django.template import RequestContext

def test(request):
    return render(request, 'test.html', RequestContext(request, {}))

注意:- my-project/urls.py 中的测试线工作正常。

我的文件夹结构如下所示:

my-project
|- my-project
|- my-app

我已将其添加到my-project/settings.py

TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(__file__), 'templates').replace('\\', '/'),
    os.path.join(BASE_DIR, 'SocialUrl', 'templates').replace('\\', '/'),
)

我收到以下错误:

    Environment:


    Request Method: GET
    Request URL: http://127.0.0.1:8000/

    Django Version: 1.6.2
    Python Version: 2.7.6
    Installed Applications:
    ('django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'SocialUrl')
    Installed Middleware:
    ('django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware')


    Traceback:
    File "C:\Users\Sverker\.virtualenvs\coomba\lib\site-packages\django\core\handlers\base.py" in get_response
      101.                 resolver_match = resolver.resolve(request.path_info)
    File "C:\Users\Sverker\.virtualenvs\coomba\lib\site-packages\django\core\urlresolvers.py" in resolve
      318.             for pattern in self.url_patterns:
    File "C:\Users\Sverker\.virtualenvs\coomba\lib\site-packages\django\core\urlresolvers.py" in url_patterns
      346.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
    File "C:\Users\Sverker\.virtualenvs\coomba\lib\site-packages\django\core\urlresolvers.py" in urlconf_module
      341.             self._urlconf_module = import_module(self.urlconf_name)
    File "C:\Users\Sverker\.virtualenvs\coomba\lib\site-packages\django\utils\importlib.py" in import_module
      40.         __import__(name)
    File "C:\Users\Sverker\Dropbox\Coomba\SbrgCoomba\SbrgCoomba\urls.py" in <module>
      13.     url(r'^/su/', include('SocialUrl.urls')),
    File "C:\Users\Sverker\.virtualenvs\coomba\lib\site-packages\django\conf\urls\__init__.py" in include
      26.         urlconf_module = import_module(urlconf_module)
    File "C:\Users\Sverker\.virtualenvs\coomba\lib\site-packages\django\utils\importlib.py" in import_module
      40.         __import__(name)
    File "C:\Users\Sverker\Dropbox\Coomba\SbrgCoomba\SocialUrl\urls.py" in <module>
      7.     url(r'^$', test),

    Exception Type: NameError at /
    Exception Value: name 'test' is not defined

我尝试过 from . import views 的各种组合线路 my-app/urls.py 例如。 from views import test

编辑:

仍然无法正常工作my-app/urls.py

from django.conf.urls import patterns, url
from views import test

urlpatterns = patterns('',
    # ex: /polls/
    url(r'^$', test),
)

最佳答案

问题是你的应用程序中确实有这一行urls.py:

url(r'^$', test)

该错误表明 test 未定义。只需定义(导入)它即可:

from views import test

关于python - 从views.py导入不适用于应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23089010/

相关文章:

python - Django 休息框架 ModelSerializer

python - 使用 Docker 部署 Django channel

javascript - import * as module 和 javascript 中的 import module 有什么区别

python - 是否可以在 discord.py 中对不同的前缀使用不同的命令?

python - 如何在使用 jinja2 时将新条目添加到字典对象中?

django - django的auth_user.username可以是varchar(75)吗?那怎么可能呢?

django - 进行 "not in"查询

sockets - 有人可以解释一下 "from socket import example"和 "import socket"之间的区别吗?

python - python33 的相对导入

jquery - 在 Pyramid 项目中使用日期选择器 jQuery 小部件