Django访问/logs触发NameError: name 'logs' is not defined问题求助
解决Django中NameError: name 'logs' is not defined的问题
嘿,我一眼就揪出问题所在啦!你在main/urls.py里直接写了include(logs.urls),但完全没导入logs这个应用模块,Django根本不知道logs是什么,自然就抛出这个NameError了。下面一步步帮你搞定:
1. 修复主urls.py的导入问题
你有两种简洁的解决方式:
方式一:直接导入logs应用
在main/urls.py顶部添加导入语句:
from django.conf.urls import include, url from django.contrib import admin # 新增这行,导入logs应用 import logs urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^logs/', include(logs.urls)), ]
方式二:直接导入logs的urls模块(更推荐)
这种写法更清晰,还能避免潜在的命名冲突:
from django.conf.urls import include, url from django.contrib import admin # 直接导入logs的urls模块并起别名 from logs import urls as logs_urls urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^logs/', include(logs_urls)), ]
2. 别忘了把logs应用加入INSTALLED_APPS
这是新手最容易漏掉的关键步骤!打开项目根目录的settings.py,确保INSTALLED_APPS列表里包含你的logs应用:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 新增这行,注册logs应用 'logs', ]
3. 修复logs/urls.py里的正则表达式小bug
你的logs/urls.py里写了r'^$/',末尾多了个斜杠,这会导致访问/logs时匹配不到视图,最终出现404错误。改成下面这样:
from django.conf.urls import url from . import views urlpatterns = [ # 去掉末尾的多余斜杠 url(r'^$', views.index, name='index'), ]
做完以上三步,重启你的Django开发服务器,再访问http://localhost:8000/logs应该就能正常运行啦!
内容的提问来源于stack exchange,提问作者Bhulawat Ajay
相关产品推荐
相关产品推荐

