我是python的初学者,即使在搜索了几个教程之后,我仍然在使用__init__.py
设置应用程序结构时遇到了很多麻烦。
目前,我当前的目录结构如下所示
/parent
/myapp
__init__.py
views.py
/virtualenv
以前,我(如果有任何不同)
/parent
/myapp
/bin
/include
/lib
__init__.py
的内容如下:
from flask import Flask
app = Flask(__name__)
和我的views.py
from myapp import app
@app.route('/')
def test():
return 'This is a new test'
if __name__ == '__main__':
app.run(debug=True)
如果使用init文件初始化myapp
,为什么我无法将其调用到视图中?我收到一条错误消息,说明我无法导入应用,而且我没有名为myapp'的模块。如果我删除init文件并将内容复制到views.py文件的顶部,一切正常。
答案 0 :(得分:7)
您使用views
作为主脚本。你不能把一个脚本放在一个包里面;它所在的目录不能这样对待。 Python将parent/myapp
目录添加到Python路径,而不是parent
路径。
在顶层(myapp
旁边)添加单独的脚本:
from myapp import app
if __name__ == '__main__':
app.run(debug=True)
并向__init__.py
添加导入以导入您的观看次数:
from flask import Flask
app = Flask(__name__)
import views
并从if __name__ == '__main__':
中移除views.py
块。