Django中的循环导入

时间:2018-01-04 06:18:28

标签: python django django-views request-response

我一直在尝试使用Django运行客户端 - 服务器应用程序。当我试图在Django中运行我的服务器时,它给了我以下错误。

  

django.core.exceptions.ImproperlyConfigured:包含的URLconf''似乎没有    有任何模式。如果您在文件中看到有效模式,则问题可能是由循环导入引起的。

项目urls.py -

from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('chat.views')),
] 

应用程序的views.py -

from django.shortcuts import render
from django.http import JsonResponse
def home(request):
if request.method == 'POST':

    if request.is_ajax():

       //code
        return JsonResponse(data)

return render(request,'index.html')

我哪里错了?

2 个答案:

答案 0 :(得分:4)

include方法需要app urls.py模型而不是views.py。您需要在应用内创建urls.py文件,并在项目网址文件中将url(r'^', include('chat.views'))替换为url(r'^', include('chat.urls'))。见django docs

答案 1 :(得分:2)

url.py 文件中的Include方法用于包含在其他文件中指定的网址格式。当你这样做 url(r' ^',include(' chat.views'))时,它无法在你的视图中找到网址模式文件。因此给出错误:

  

django.core.exceptions.ImproperlyConfigured:包含的URLconf''   似乎没有任何模式。如果你看到有效的模式   在文件中,问题可能是由循环导入引起的。

我们通常在app文件夹中创建一个urls.py文件,并在此文件中写下有关此应用程序的所有url模式。 在您的应用文件夹中创建一个新的 urls.py 文件,并在该文件中写入网址模式。

然后在主要urls.py 文件中加入 app的urls.py 文件,如下所示: -

url(r'^', include('chat.urls')),

并且您的应用的urls.py文件应如下所示:

from django.conf.urls import url
urlpatterns = [
   url(r'', views.home, name = "home")),
] 

您可以从文档中找到有关django网址的更多信息: - django urls

如果您不想在app目录中创建新的 urls.py 文件,那么您只需在 main urls.py 文件中导入视图即可并在此文件中写入url模式。然后你的主urls.py 文件将如下所示: -

from django.conf.urls import url,include
from django.contrib import admin
from chat.views import home

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', home, name = "home"),
]