python应用程序上的循环导入

python应用程序上的循环导入,python,flask,Python,Flask,我开始学习python和,但我在理解作者如何布置文件方面遇到了一些困难。据我所知,我似乎遇到了一个循环导入问题,我无法解决它 文件设置如下: \uuuu init\uuuuu.py from flask import Flask app = Flask(__name__) app.config['SECRET_KEY'] = "something here"; app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite://app.db" from fla

我开始学习python和,但我在理解作者如何布置文件方面遇到了一些困难。据我所知,我似乎遇到了一个循环导入问题,我无法解决它

文件设置如下:

\uuuu init\uuuuu.py

from flask import Flask
app = Flask(__name__)

app.config['SECRET_KEY'] = "something here";
app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite://app.db"
from flask import render_template, request, redirect, url_for, abort, session
from app import app

@app.route('/')
.... some stuff here
from flask.ext.sqlalchemy import SQLAlchemy
from app import app

db = SQLAlchemy(app)

class User(db.Model):
.... some stuff here
#!/usr/bin/env python
from flask.ext.script import Manage, Shell, Server 
from app import app

manage = Manager(app)
manager.add_command("runserver", Server())
manager.add_command("shell", Shell())

@manager.command
def createdb():
   from app.models import db
   db.create_all()

manager.run()
app.py

from flask import Flask
app = Flask(__name__)

app.config['SECRET_KEY'] = "something here";
app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite://app.db"
from flask import render_template, request, redirect, url_for, abort, session
from app import app

@app.route('/')
.... some stuff here
from flask.ext.sqlalchemy import SQLAlchemy
from app import app

db = SQLAlchemy(app)

class User(db.Model):
.... some stuff here
#!/usr/bin/env python
from flask.ext.script import Manage, Shell, Server 
from app import app

manage = Manager(app)
manager.add_command("runserver", Server())
manager.add_command("shell", Shell())

@manager.command
def createdb():
   from app.models import db
   db.create_all()

manager.run()
models.py

from flask import Flask
app = Flask(__name__)

app.config['SECRET_KEY'] = "something here";
app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite://app.db"
from flask import render_template, request, redirect, url_for, abort, session
from app import app

@app.route('/')
.... some stuff here
from flask.ext.sqlalchemy import SQLAlchemy
from app import app

db = SQLAlchemy(app)

class User(db.Model):
.... some stuff here
#!/usr/bin/env python
from flask.ext.script import Manage, Shell, Server 
from app import app

manage = Manager(app)
manager.add_command("runserver", Server())
manager.add_command("shell", Shell())

@manager.command
def createdb():
   from app.models import db
   db.create_all()

manager.run()
manage.py

from flask import Flask
app = Flask(__name__)

app.config['SECRET_KEY'] = "something here";
app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite://app.db"
from flask import render_template, request, redirect, url_for, abort, session
from app import app

@app.route('/')
.... some stuff here
from flask.ext.sqlalchemy import SQLAlchemy
from app import app

db = SQLAlchemy(app)

class User(db.Model):
.... some stuff here
#!/usr/bin/env python
from flask.ext.script import Manage, Shell, Server 
from app import app

manage = Manager(app)
manager.add_command("runserver", Server())
manager.add_command("shell", Shell())

@manager.command
def createdb():
   from app.models import db
   db.create_all()

manager.run()
第一个错误是无法通过运行manage.py runserver启动服务器。最初我可以这样做,直到我在init.py中切换文件初始化应用程序(最初我将所有内容都放在app.py中)。我收到一个错误,上面写着——

ImportError:无法导入名称应用程序

除此之外,如果我删除init.py并让服务器启动并运行,我将无法创建数据库,因为我收到一个错误,说明-


导入错误:运行manage.py createdb时没有名为models的模块

您试图从app导入app,从app导入app?…这与目录的命名方式有关吗?我的父文件夹名为“app”,而在本教程中,父文件夹名为“example”,并使用“from example import app”,这就是为什么我将其写为“from app import app”
from x import y
means。您的init文件实际上被准确地称为
init.py
?它应该是
\uuuu init\uuuu.py
。它的目的是将目录转换为包。您通常不会在其中放入太多/任何代码。是的,它名为init。所以从app导入app意味着从app.py文件导入app(烧瓶对象)?是的,但它本身并不意味着什么。将
init.py
文件重命名为
\uuuuu init\uuuuuu.py
,再次通读本教程并通读