从父目录导入属性

时间:2017-02-12 17:26:27

标签: python flask import

这就是我的文件夹和文件的样子:

/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 directoryimport script from a parenet directory我已尝试from app import *from .. import app或还将db = SQLAlchemy(app)放入__init__文件,然后将其models.py导入from app import dbfrom .. import db,但我会继续app和{{1}没有定义,我认为我应该互相导入两个文件是很奇怪的。

1 个答案:

答案 0 :(得分:1)

错误是关于Flask扩展,而您的应用创建的sqlalchemy扩展名没有初始化,因此会导致错误。最佳做法是将扩展名保持在同一位置:

#app/__init__.py
...
db = SQLAlchemy(app)
from app.admin.models import *

#app/admin/models.py
...
from app import db

如果您执行此更改,它将起作用。