2013-01-23 63 views
20

我开始一个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 

,并在他的app/views.py

from app import app 

这是什么东西与所有这些app的?!

+0

这些只是名称和类型的对象应该是清楚的,你可以重新状态/澄清你的问题? – XORcist

+2

什么是从'从应用程序导入应用程序'导入? – kasperhj

回答

21

我认为主要的困惑是在该行:

from app import app 

您有一个名为“应用程序” Python包(带__init__.py文件的文件夹)。从这个文件夹,你现在导入您在__init__.py文件下面定义的变量“应用程序”:

app = Flask(__name__) 

从应用程序文件夹重命名说“MyProject的”。然后,你会打电话给

from myproject import app 

此外,您将导入的意见,

from myproject import views 
3

由于名称选择不当,确实有点令人困惑。

  • app = Flask(__name__):这里appWSGI应用程序,它实现了相应的接口,同时还支持任何烧瓶带有给我们提供最重要的是。
  • from app import app:完全从app包中导入app对象。
  • from app import view:为了什么,他在那里输入views,有点神秘,我想他要确保视图绑定被执行。 (我宁愿在run.py中那样做)。无论如何,这是两个模块之间的一种导入循环,至少也是令人困惑的。