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

文件结构如图,为什么在views文件中必须要写fromapp01.common_modelimportdata_model才可以正确导入,,,,而直接写importcom... 文件结构如图,为什么在views文件中 必须要写from app01.common_model import data_model 才可以正确导入,,,,而直接写import common_model.data_model会报不存在此模块的错误?这个文件和views不是在同一根目录下吗? 展开
 我来答
盗墓者18
2019-03-16 · TA获得超过2028个赞
知道小有建树答主
回答量:820
采纳率:84%
帮助的人:249万
展开全部

看上面的图片,按你的导包方法,单独运行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在同一级,导入包的时候不是会自动寻找当前目录下的文件吗?按理说是可以找的 的呀
追答
并不在同一级,你再看看你发的截图
丶雨美07
2017-11-24 · 超过19用户采纳过TA的回答
知道答主
回答量:133
采纳率:37%
帮助的人:19万
展开全部
入模块问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式