在SQLAlchemy中访问多个数据库

时间:2018-04-26 14:16:22

标签: python flask sqlalchemy flask-sqlalchemy

这是我的代码:

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////root/Desktop/Social_Network/users.db'
app.config['SQLALCHEMY_BINDS'] = {'posts': 'sqlite:////root/Desktop/Social_Network/posts.db'}

class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    email = db.Column(db.String(40), unique=True, nullable=False)
    password = db.Column(db.String, nullable=False)
    joined_at = db.Column(db.DateTime(),default =datetime.datetime.now)
    is_hero = db.Column(db.Boolean(),default=False)

class Post(db.Model):
    __bind_key__ = 'posts' 
    id = db.Column(db.Integer, primary_key=True)
    user = db.Column(db.String(50))
    post = db.Column(db.String(255))
    score = db.Column(db.Integer, nullable=False)
    downVotes = db.Column(db.Integer, nullable=False )
    posted_time = db.Column(db.DateTime(),default =datetime.datetime.now)
    upVotes = db.Column(db.Integer,nullable=False)

dict_ = {}
def get_all_users():
    users_ = User.query.all()
    global dict_
    for user in users_:
        dict_[user.email] = user.password
    return dict_

我在SQLAlchemy中连接了多个数据库。我的问题是每当我跑:

users_ = User.query.all()

。它返回User对象,但是在我将其更改为post后,就像这样:

post = Post.query.all()

它没有返回。有关此问题的任何帮助?

0 个答案:

没有答案