__name__只是获取应用定义位置的导入名称的便捷方法。Flask使用导入名称来知道在哪里查找资源,模板,静态文件,实例文件夹等。使用包时,如果在其中定义应用程序,
__init__.py则
__name__仍然会指向相对于资源所在的“正确”位置是。但是,如果您在其他地方定义它(例如)
mypackage/app.py,则using
__name__将告诉Flask寻找相对于
mypackage.app而不是的资源
mypackage。
使用
__name__与“硬编码”不正交,它只是使用包名称的捷径。而且也没有理由说名称 应该 是基本包,这完全取决于您的项目结构。



