gpt4 book ai didi

python - Flask ('application' ) 与 Flask(__name__)

转载 作者:太空狗 更新时间:2023-10-29 18:27:21 25 4
gpt4 key购买 nike

在官方Quickstart ,建议在使用单个模块时使用__name__:

  1. ... If you are using a single module (as in this example), you should use __name__ because depending on if it’s started as application or imported as module the name will be different ('__main__' versus the actual import name). ...

然而,在他们的API document ,当我的应用程序是一个时,建议硬编码:

So it’s important what you provide there. If you are using a single module, __name__ is always the correct value. If you however are using a package, it’s usually recommended to hardcode the name of your package there.

我能理解为什么硬编码我的包的名称会更好,但为什么不硬编码单个模块的名称呢?或者,换句话说,当 Flask 接收到一个 __main__ 作为它的第一个参数时,它能得到什么信息?我看不出这如何让 Flask 更容易找到资源...

最佳答案

__name__只是获取定义应用程序的位置的导入名称的便捷方法。 Flask 使用导入名称来知道在哪里查找资源、模板、静态文件、实例文件夹等。使用包时,如果您在 __init__.py 中定义您的应用程序然后是 __name__仍然会指向相对于资源所在位置的“正确”位置。但是,如果您在别处定义它,例如 mypackage/app.py , 然后使用 __name__会告诉 Flask 寻找与 mypackage.app 相关的资源而不是 mypackage .

使用 __name__与“硬编码”不正交,它只是使用包名称的快捷方式。也没有理由说名称​​应该 是基础包,这完全取决于您的项目结构。

关于python - Flask ('application' ) 与 Flask(__name__),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39393926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com