我是django的新手,已经做了几个教程以使结构化非常舒服,现在正在官方教程中运行。
我已经创建了一个polls
应用程序,该应用具有polls/views.py
文件,如下所示:
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("Hello, World. You're at the polls index.")
我还创建了一个带有以下代码的应用程序urlconf文件polls/urls.py
:
from django.conf.urls import url
from . import views
url_patterns = [
url(r'^$', views.index, name='index'),
]
这几乎与django教程中所做的完全一样。
我的问题是,当我在项目级别上指定主要projectname/url.py
文件中的URL路由时:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^admin/', admin.site.urls),
]
这样做时,我会收到以下错误:
django.core.exceptions.ImproperlyConfigured: The included URLconf '<module 'polls.urls' from 'ProjectFolder\polls\urls.py'>' does not appear to have any patterns in it. If you see valid patterns in the file then the issue is probably caused by a circular import.
这就是官方Django教程要求这样做的方式。但是,如果我从应用程序中阐明polls/views.py
文件,我可以按以下方式完成任务:
from django.conf.urls import url
from django.contrib import admin
from polls import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^polls/', views.index),
]
我直接关注的是,这种方法需要我创建的每个应用程序/URL文件的导入,以及与官方Django指令的明显差异。
我犹豫不决地问这个问题,因为我觉得这样的基本问题必定会很容易解决。任何帮助将不胜感激。
要澄清,我可以通过从应用程序中明确导入视图文件来解决错误。每当使用Django文档使用include()
函数的方法时,我都会收到错误。我可以欣赏此功能的价值,并且想知道为什么给我上述错误。
只是在您的poll.views.py
中写下urlpatterns = [ ..
,而不是url_patterns
。