Flask与app混淆

2024-04-24 22:32:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在启动一个flask项目,在我的代码中

from flask import Flask, render_template, abort
app = Flask(__name__)

现在app到底是什么?

我在关注this guide,我对这个结构感到特别困惑,因为他选择了名为app/的目录,并且是他拥有的app/__init__.py

from flask import Flask
app = Flask(__name__)
from app import views

在他的作品中

from app import app

这些东西到底是什么?!


Tags: 项目代码namefromimport目录appflask
3条回答

这确实有点让人困惑,因为名字选择不当。

  • app = Flask(__name__):这里的app是一个WSGI应用程序,它实现了相应的接口,并且还支持Flask提供给我们的任何功能。
  • from app import app:从包app中准确导入该app对象。
  • from app import view:对于他要导入的究竟是什么,views有点神秘,我想他想确保视图绑定被执行。(我宁愿在run.py中这样做)。无论如何,这是两个模块之间的一种导入循环,至少也会让人困惑。

我认为主要的困惑在于:

from app import app

您有一个名为“app”的python包(包含__init__.py文件的文件夹)。从这个文件夹中,您现在正在导入您在__init__.py文件中定义的变量“app”:

app = Flask(__name__)

将app中的文件夹重命名为“myproject”。那你就给我打电话

from myproject import app

此外,您还可以将视图导入为

from myproject import views

作者通过选择一个与Flask常用的应用程序对象实例名相同的包名,使代码变得不必要地混乱。这是你最感兴趣的:

app = Flask(__name__)

下面是烧瓶应用程序对象的文档:

http://flask.pocoo.org/docs/api/#application-object

为了避免混淆,我建议使用official Flask documentation而不是该指南。

相关问题 更多 >