Flask中使用SQLAlchemy保存和检索关系的基本示例

2 投票
1 回答
1374 浏览
提问于 2025-04-16 08:13

我正在尝试把Flask和SQLAlchemy结合在一起,但进展不太顺利。我在按照Flask官网上的示例进行操作。

在控制台中,我可以创建和获取单个用户和帖子,但无法像这样使用user.posts来获取用户的帖子。

from flask import Flask
from flaskext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:@localhost/dbname'
db = SQLAlchemy(app)

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)

    def __init__(self, username):
        self.username = username

class Post(db.Model):
    __tablename__ = 'posts'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80))
    user_id = db.Column('user_id', db.Integer, db.ForeignKey('users.id'))

    def __init__(self, user_id, name):
        self.user_id = user_id
        self.name = name

1 个回答

4

要获取用户的帖子,你需要在 Users(用户)和 Posts(帖子)之间建立一个“关系”。这样做可以让你轻松地找到某个用户发布的所有帖子。

class User:
    # ...
    posts = relationship(child='Post', backref='user')

撰写回答