以下是一个示例,展示了如何在Flask-SQLAlchemy中创建一个一对多的关系,其中多方有两个字段都是1的外键。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
db = SQLAlchemy(app)


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50))

    # 两个字段都是1的外键
    posts_one = db.relationship('Post', backref='user_one', lazy=True, foreign_keys='Post.user_one_id')
    posts_two = db.relationship('Post', backref='user_two', lazy=True, foreign_keys='Post.user_two_id')


class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100))
    content = db.Column(db.Text)
    user_one_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user_two_id = db.Column(db.Integer, db.ForeignKey('user.id'))


if __name__ == '__main__':
    db.create_all()
    app.run()

在上面的例子中,User模型类表示用户,Post模型类表示帖子。UserPost之间是一对多的关系,其中多方(Post)有两个字段都是1的外键(user_one_iduser_two_id)。User模型类中的posts_oneposts_two分别表示用户发布的帖子,通过backref参数定义了反向引用。

这里使用的数据库是SQLite,可以根据需要更改为其他数据库。在if __name__ == '__main__'中,使用db.create_all()创建数据库表,并使用app.run()运行Flask应用

flask Flask-SQLAlchemy 一对多的关系多方有两个字段都是1的外键。举例创建模型类

原文地址: http://www.cveoy.top/t/topic/isgB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录