Django3.1无法将应用views导入项目urls文件问题求助
你遇到的导入报错本质不是导入语句的问题,是项目内多个文件存在语法错误、缩进错误,Python加载newapp模块时执行内部代码失败,就会表现为views无法导入。以下是所有需要修正的点:
- 先确认目录结构符合要求:newapp文件夹要和项目根目录的
manage.py同级,且newapp文件夹下存在空的__init__.py文件,保证Python能将其识别为可导入的包。 - 修正
newapp/models.py的缩进错误:原代码中last_name、email字段没有缩进在User类内部,属于全局变量,会触发模型定义错误,修正后代码:
from django.db import models class User(models.Model): first_name = models.CharField(max_length=128) last_name = models.CharField(max_length=128) email = models.EmailField(max_length=256, unique=True)
- 修正
newapp/urls.py的导入错误:原代码错误从models模块导入views,views是同级的独立文件,应该从当前包导入,同时Django 3.1推荐用path替代旧的url方法,修正后代码:
from django.urls import path from . import views urlpatterns = [ path('', views.users, name='users'), ]
- 修正
newproject/urls.py的语法错误:原代码中urlpatterns前有多余缩进,name="users"是HTML转义字符错误,替换为正常双引号即可,修正后代码:
from django.contrib import admin from django.urls import path, include from newapp import views urlpatterns = [ path('', views.index, name='index'), path('users/', views.users, name="users"), path('admin/', admin.site.urls), # 如需挂载newapp下的urls配置,可增加下面这行 # path('newapp/', include('newapp.urls')), ]
所有错误修正完成后,在manage.py所在的根目录运行python manage.py check,如果没有报错说明模块可以正常导入,再启动服务即可。
内容的提问来源于stack exchange,提问作者Asad Tayyab
相关产品推荐
相关产品推荐

