【问题标题】:Django urls.py syntax error (maybe importing issues?)Django urls.py 语法错误(可能是导入问题?)
【发布时间】:2015-03-29 16:52:04
【问题描述】:

我正在使用 django 框架,但遇到错误。
这是我的 settings.py,INSTALLED_APPS

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'apps',
)

而且,这是我的 apps/ 目录。

apps/
    __init__.py
    qnaBoard/
        admin.py
        migrations/
        tests.py
        views.py
        urls.py
        __init__.py
        models.py
        urls.py

而且,这是我的 urls.py,它与 settings.py 位于同一目录中。

from django.conf.urls import patterns, include, url
from django.contrib import admin
urlpatterns = patterns('',
    url(r'^course/', include('apps.qnaBoard.urls')),
    url(r'^admin/', include(admin.site.urls)),
) 

我认为我遵循了正确的方法,但是它说找不到 apps.qnaBoard.urls,并引发语法错误。

这是回溯:

Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
  98.                 resolver_match = resolver.resolve(request.path_info)
File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py" in resolve
  343.             for pattern in self.url_patterns:
File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py" in url_patterns
  372.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py" in urlconf_module
  366.             self._urlconf_module = import_module(self.urlconf_name)
File "/usr/lib/python2.7/importlib/__init__.py" in import_module
  37.     __import__(name)
File "/root/campusmate/campusmate/campusmate/urls.py" in <module>
  9.     url(r'^course/', include('apps.qnaBoard.urls')), #need to apply course router
File "/usr/local/lib/python2.7/dist-packages/django/conf/urls/__init__.py" in include
  28.         urlconf_module = import_module(urlconf_module)
File "/usr/lib/python2.7/importlib/__init__.py" in import_module
  37.     __import__(name)

Exception Type: SyntaxError at /course/
Exception Value: invalid syntax (urls.py, line 4)

这是apps/qnaBoard/urls.py

from django.conf.urls import patterns, include, url
from django.contrib import admin
from apps.qnaBoard.views import showPost
from apps.qnaBoard.views import showQuestionThread
from apps.qnaBoard.views import writeReply
from apps.qnaBoard.views import writeQuestion
from apps.qnaBoard.views.import writeAnswer

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'campusmate.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),
    # need to be refactored when course router are attached.
    url(r'^([0-9]+)/([1-4])/([A-Za-z0-9]+)/article/list/', showPost.as_view()),
    url(r'^([0-9]+)/([1-4])/([A-Za-z0-9]+)/article/([0-9]+)/$', showQuestionThread.as_view()),
    url(r'^([0-9]+)/([1-4])/([A-Za-z0-9]+)/article/([0-9]+)/reply', writeReply.as_view()),
    url(r'^([0-9]+)/([1-4])/([A-Za-z0-9]+)/article/write/$', writeQuestion.as_view()),
    url(r'^([0-9]+)/([1-4])/([A-Za-z0-9]+)/article/write/([0-9]+)/$', writeAnswer.as_view()),
)

【问题讨论】:

  • 你能告诉我们apps/qnaBoard/urls.py吗?
  • 是的,同时更新apps/qnaBoard/urls.py 文件。我认为您错过了此文件中的某些内容。
  • apps 不是有效的 django 应用程序。 INSTALLED_APPS 包含 django 应用程序列表(不仅仅是任何 python 模块)。参考 - docs.djangoproject.com/en/1.7/ref/applications 。在您的示例中,确保 qnaBoard 符合 django 应用程序的条件,然后将 apps.qnaBoard 添加到 INSTALLED_APPS
  • 我怀疑它是否相关,但 /list/ 和 '/reply' 应该以 /$ 结尾。

标签: python django django-urls


【解决方案1】:

从网址中删除 .

问题出在以下文件中:

文件名: apps/qnaBoard/urls.py

from apps.qnaBoard.views.import writeAnswer. 在那里,删除它。

【讨论】:

  • 视图是用类实现的。所以它需要括号。
  • 是的,知道了,在哪个事件或 url 调用上你会得到这个异常?
  • @SeokJuHong:只需通过 python 命令运行每个 py 文件,例如python apps/qnaBoard/views.py 并检查是否有syntax error
  • 在你评论之后,我尝试了manage.py shell,发现有一行愚蠢的代码,from apps.qnaBoard.views.import writeAnswer
  • 视图和导入之间有一个点。废话:(无论如何,非常感谢你!
猜你喜欢
  • 2013-10-28
  • 1970-01-01
  • 2017-12-01
  • 2018-11-04
  • 2014-10-20
  • 2017-12-29
  • 2012-04-25
  • 2012-01-26
  • 1970-01-01
相关资源
最近更新 更多