关于Django: ImportError: attempted relative import beyond top-level package问题的疑惑


 

问题:

想要在urls.py中导入polls包中的views.py,于是试图使用:from .. import polls。结果在终端调用命令“python manage.py runserver”时报错:

 

 解决:

在网上查找了很久,学习了很多他人的想法(比如https://blog.csdn.net/suiyueruge1314/article/details/102683546以及https://blog.csdn.net/sky453589103/article/details/78863050),大概了解了原因出在最顶层的名字。尝试了很多办法,最后发现在urls.py中添加

import os
import sys
os.chdir(os.path.dirname(__file__))
sys.path.append("..")
然后再
import polls
即可。

疑惑:
本人刚接触Django,对于其内部构造和原理并不了解,由于在终端调用的命令通过manage.py实现,于是对manage.py究竟是如何调用urls.py的、为何urls.py的名字会不包括前几级包名感到疑惑。希望能够在后续的学习过程中加深对此的理解。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM