详解Python的Flash框架的常用语句:

app = Flask(__name__)

这一语句创建了一个Flask应用程序对象。

Flask是一个基于Python的轻量级Web框架,用于构建Web应用程序。在使用Flask时,我们需要创建一个Flask应用程序对象,该对象将充当我们构建Web应用程序的核心。

在初始化名叫app的对象时,为什以要以特殊全局变量__name__作为初始化值,这是理解这条语句的难点。

答案是这是为了方便Flask确定相关文件的路径,具体解释如下:

当脚本作为主程序运行时(此时__name__的值为__main__),Flask会将应用程序的根路径设置为脚本所在的目录。

假设您有以下的目录结构:

/myapp
  ├── app.py
  └── templates
      └── index.html

app.py是您的Flask应用程序脚本,templates是存放模板文件的目录。

app.py脚本中,使用以下代码创建Flask应用程序对象:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello, Flask!'

当您在终端或命令行中执行以下命令时:

python /myapp/app.py

此时,由于__name__的值为__main__,所以Flask就知道了,脚本文件app.py所在的目录就是Flask相关功能函数所在的目录,此时Flask会将自己的根路径设置为/myapp,因此,Flask会在该路径下查找静态文件和模板文件。

现在,让我们考虑脚本作为模块被导入的情况。假设您有以下的目录结构:

/swh
  ├── run.py
  └── myapp
      ├── __init__.py
      └── views.py

run.py是一个简单的脚本,用于启动应用程序,而myapp是一个Python模块,其中包含Flask应用程序的定义。

/swh/myapp/__init__.py模块中,使用以下代码创建Flask应用程序对象:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello, Flask!'

/swh/run.py脚本中,使用以下代码导入并启动Flask应用程序:

from myapp import app

if __name__ == '__main__':
    app.run()

当您在终端或命令行中执行以下命令时:

python /swh/run.py

Flask应用程序会发现__name__的值不为__main__,于是它就知道了它不应该把其相关路径设置为 /swh/,而应该设置为/swh/myapp/,然后在Flask会在该路径下查找静态文件和模板文件。

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐