python的Django views 文件中引入模块问题 10
文件结构如图,为什么在views文件中必须要写fromapp01.common_modelimportdata_model才可以正确导入,,,,而直接写importcom...
文件结构如图,为什么在views文件中 必须要写from app01.common_model import data_model 才可以正确导入,,,,而直接写import common_model.data_model会报不存在此模块的错误?这个文件和views不是在同一根目录下吗?
展开
2个回答
展开全部
看上面的图片,按你的导包方法,单独运行views是没问题的
但是在django里这样用不行,在运行django项目时,其实当前目录是整个项目的根目录
你可以在views目录下import os,然后 print(os.getcwd())查看当前目录:
打印的当前目录正是整个项目的根目录,我的是E:\mypython\day51...\blw:
你这里的就是G:\....Anno:
你要在Anno目录下导入data_model.py,是不是要带上app名才能进入子级目录对吧?
而且还有个问题就是,在以后的开发中,很有可能在不同app下有相同名字的模块或者方法,比如你这里有三个app,app01,app02,app03,这三个app下都有common_model,那到底按什么区分呢?所以前面最好带上app名。
不过真想方便,可以使用:from .common_model import data_model
【.】代指当前文件的目录,这是一种相对路径的导入
追问
import app01.common_model.data_model前面为什么要加app01呢?views不是属于app01包中的吗,它和common_model在同一级,导入包的时候不是会自动寻找当前目录下的文件吗?按理说是可以找的 的呀
追答
并不在同一级,你再看看你发的截图
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询