Django运行报ModuleNotFoundError: 找不到current_datetime模块求助
错误原因
触发ModuleNotFoundError: No module named 'current_datetime'的核心原因有两个:
urls.py中include()用法错误:include()的作用是引入其他独立的URL配置模块(即其他应用下的urls.py文件),不能直接用来绑定单个视图函数。你传入的'views.current_datetime'会被Django识别为待导入的模块路径,尝试查找views目录下名为current_datetime的模块文件,该文件不存在自然报错。views.py中存在不完整的导入语句:from datetime是无效写法,就算路由问题修复,这行代码也会触发导入语法错误。
修复方案
按以下步骤修改代码即可:
修正
views.py的datetime导入
两种合法导入方式二选一即可:- 方式1:导入整个datetime模块
from django.shortcuts import render from django.http import HttpResponse import datetime # 补全正确的模块导入 def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html)- 方式2:直接导入datetime类
from django.shortcuts import render from django.http import HttpResponse from datetime import datetime # 直接导入datetime类 def current_datetime(request): now = datetime.now() # 调用方式对应简化 html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html)修正
urls.py的路由配置
移除错误的include()调用,直接绑定导入的视图函数,修正后代码如下:from django.contrib import admin from django.urls import path from . import views urlpatterns = [ path('admin/', admin.site.urls), path('time/', views.current_datetime, name='current_time') # 直接关联视图函数,不需要include ]
修改完成后重启Django开发服务,访问/time路径即可正常显示当前时间,不会再触发模块找不到的错误。
内容的提问来源于stack exchange,提问作者emanuel
相关产品推荐
相关产品推荐

