關於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