Python 与应用程序混淆

Python 与应用程序混淆,python,flask,Python,Flask,我正在启动一个flask项目,在我的代码中 from flask import Flask, render_template, abort app = Flask(__name__) 现在什么是app 我正在关注,我对这个结构感到特别困惑,因为他选择了名为app/的目录,并且是他的app/\uu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuupy from flask import Flask app = Flask(__name__)

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

from flask import Flask, render_template, abort
app = Flask(__name__)
现在什么是
app

我正在关注,我对这个结构感到特别困惑,因为他选择了名为
app/
的目录,并且是他的
app/\uu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuupy

from flask import Flask
app = Flask(__name__)
from app import views
from app import app
在他的
app/views.py
中,他有

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

这些应用程序到底是怎么回事

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

app = Flask(__name__)
以下是有关Flask应用程序对象的文档:


为了避免混淆,我建议使用代替该指南。

由于名称选择不当,这确实有点混淆

  • app=Flask(\uuuu name\uuuu)
    :这里的
    app
    是一个应用程序,它实现了相应的接口,还支持Flask向我们提供的任何功能
  • from-app-import-app
    :从包
    app
    中准确导入
    app
    对象
  • 来自app import view
    :他在那里导入的
    视图有点神秘,我想他是想确保视图绑定被执行。(我宁愿在
    run.py
    中这样做)。在任何情况下,这是两个模块之间的一种导入循环,至少也会让人困惑

    • 我认为主要的困惑在于:

      from app import app
      
      您有一个名为“app”的python包(一个包含
      \uuu init\uuu.py
      文件的文件夹)。现在,您正在从该文件夹导入变量“app”,该变量是您在
      \uuuu init\uuuuuu.py
      文件中定义的:

      app = Flask(__name__)
      
      将应用程序中的文件夹重命名为“myproject”。那你就给我打电话

      from myproject import app
      
      此外,还将导入视图作为

      from myproject import views
      

      这些只是名称,对象的类型应该是清楚的,你能重新陈述/澄清你的问题吗?从app import app
      导入的
      中是什么?我也有同样的问题,本指南不清楚。