这就是我的文件夹和文件的样子:
/app
__init__.py
/admin
__init__.py
models.py
和app/__init__.py
文件:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from app.admin.models import *
app = Flask('app')
@app.route('/users', methods=['GET'])
def show_users():
return "list of all Users:\n" + User.query.limit(5).all()
和app/admin/models.py
:
from datetime import datetime
from sqlalchemy.orm import relationship
from flask_sqlalchemy import SQLAlchemy
from app import app
db = SQLAlchemy(app)
class User(db.Model):
pass
我希望能够访问User
文件中的init
模型,Import from parent directory和import script from a parenet directory我已尝试from app import *
或from .. import app
或还将db = SQLAlchemy(app)
放入__init__
文件,然后将其models.py
导入from app import db
或from .. import db
,但我会继续app
和{{1}没有定义,我认为我应该互相导入两个文件是很奇怪的。
答案 0 :(得分:1)
错误是关于Flask扩展,而您的应用创建的sqlalchemy扩展名没有初始化,因此会导致错误。最佳做法是将扩展名保持在同一位置:
#app/__init__.py
...
db = SQLAlchemy(app)
from app.admin.models import *
#app/admin/models.py
...
from app import db
如果您执行此更改,它将起作用。