我们在使用Flask框架时,创建一个app,需要用到Flask(__name__)的语句,很多时候只是生搬硬套并不知道__name__的作用。 首先介绍一下__name__本身的用法: 例如,在应用程序顶级目录中名为 test.py 的模块中,__name__ 的值为 test。 如果 test.py 模块位于一个名为 my_package 的 Python 包中,那么 __name__ 的值就是 my_package.test。
__name__ 的值有两个特殊的例外: 在应用程序的主模块(运行 Python 解释器的文件)中,__name__ 的值是特殊值__main__ 。 如果你阅读 Flask 文档,Flask 类的第一个参数称为 import_name。 它被描述为“应用程序包的名称”。 该文档建议你“通常”通过为此参数传递__name__ 来创建 Flask 实例,而无需详细说明原因。 Flask 接受作为 import_name 传递的参数,它是导入包的名称,并尝试使用它通过查找具有该名称的模块对象来确定应用程序的根路径。 一旦知道了这个路径,它就会拼接静态和模板目录名称,这就是它获取这些文件的地方。
|