运行Django程序的时候,出现“django.core.exceptions.ImproperlyConfigured: The included URLconf 'my_image.urls' 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.”错误。
看到 'my_image.urls'这个就应该想到是不是url配置方式有问题。(‘my_image’是我的项目名)
解决问题之前,我的 'my_image.urls'配置内容如下:
from django.conf.urls import url,include
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^image/', include('image.urls', namespace='image')),
url(r'^captcha/', include('captcha.urls'))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
其中‘image.urls’是应用的urls名,它的代码如下:
from django.conf.urls import url
import image.views as bv
appname = 'image'
urlpatterns = [
url(r'^index/', bv.index, name='index'),
url(r'^saveImg/', bv.saveImg, name='saveImg'),
url(r'^validate/', bv.validate, name='validate'),
]
改变urls的配置方式,修改后我的'my_image.urls'代码如下,其实就是include()中的第一参数是一个二元元组,将应用名添加在元组中:
from django.conf.urls import url,include
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^image/', include(('image.urls', 'image'), namespace='image')), # 此处修改了
url(r'^captcha/', include('captcha.urls'))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
‘image.urls’修改如下:
from django.conf.urls import url
import image.views as bv
#appname = 'image' # 此处注释掉
urlpatterns = [
url(r'^index/', bv.index, name='index'),
url(r'^saveImg/', bv.saveImg, name='saveImg'),
url(r'^validate/', bv.validate, name='validate'),
]
其实,就是改变项目与应用两级的urls.py文件中的配置方式。
第二种解决方法,就是看看应用urls配置中的appname=‘应用名’ 改成app_name=‘应用名’。