Django配置路由报错No module named 'learning_logs.urls'如何解决
问题修复方案
这个报错的核心原因是Django无法定位到learning_logs.urls模块,按以下步骤逐一排查修复即可:
- 第一步:确认应用已正确注册
打开项目配置目录下的settings.py,找到INSTALLED_APPS配置项,确认learning_logs应用已加入列表,参考配置如下:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # 注册自己的应用,两种写法选一种即可 'learning_logs', # 'learning_logs.apps.LearningLogsConfig', ] - 第二步:确认应用下存在
urls.py文件
检查项目目录结构,learning_logs应用文件夹必须和manage.py同级,且文件夹内必须存在urls.py文件,标准结构参考:
如果漏建了这个文件,直接在项目根目录/ ├── manage.py ├── 项目配置文件夹/ # 存放根urls.py、settings.py的目录 └── learning_logs/ ├── __init__.py ├── apps.py ├── views.py ├── models.py └── urls.py # 缺失这个文件就会触发你遇到的报错learning_logs目录下新建即可,基础模板内容如下:from django.urls import path from . import views app_name = 'learning_logs' # 新版本Django建议配置应用命名空间,避免路由重名 urlpatterns = [ # 在这里添加你的应用路由,例如首页路由示例 # path('', views.index, name='index'), ] - 第三步:清理根路由文件的冗余代码
你当前的根urls.py重复导入了两次path,虽然不会直接触发报错,但可以精简为:from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path('', include('learning_logs.urls')), ] - 额外检查项:确认
learning_logs文件夹名没有拼写错误,不要把应用文件夹放到项目配置文件夹内部,否则Python的导入机制无法找到对应模块。
所有修改完成后重启Django开发服务,报错即可解决。
内容的提问来源于stack exchange,提问作者szhang04
相关产品推荐
相关产品推荐

