python的Django views 文件中引入模块问题

文件结构如图,为什么在views文件中 必须要写from app01.common_model import data_model 才可以正确导入,,,,而直接写import common_model.data_model会报不存在此模块的错误?这个文件和views不是在同一根目录下吗?

看上面的图片,按你的导包方法,单独运行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在同一级,导入包的时候不是会自动寻找当前目录下的文件吗?按理说是可以找的 的呀

追答

并不在同一级,你再看看你发的截图

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-24
入模块问题
相似回答