我开始学习python和I'm following this tutorial on setting up Flask,但我在理解作者如何列出文件方面遇到了一些麻烦。从我可以收集的信息来看,我似乎遇到了一个循环导入问题而且我无法解决它。
文件设置如下:
__init__.py
from flask import Flask
app = Flask(__name__)
app.config['SECRET_KEY'] = "something here";
app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite://app.db"
app.py
from flask import render_template, request, redirect, url_for, abort, session
from app import app
@app.route('/')
.... some stuff here
models.py
from flask.ext.sqlalchemy import SQLAlchemy
from app import app
db = SQLAlchemy(app)
class User(db.Model):
.... some stuff here
manage.py
#!/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: cannot import name app
除此之外,如果我消除init.py并启动并运行服务器,我无法创建数据库,因为我收到错误说明 -
运行manage.py createdb时 Import Error: no module named models