flask Flask-SQLAlchemy 一对多的关系多方有两个字段都是1的外键。举例创建模型类
以下是一个示例,展示了如何在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模型类表示帖子。User和Post之间是一对多的关系,其中多方(Post)有两个字段都是1的外键(user_one_id和user_two_id)。User模型类中的posts_one和posts_two分别表示用户发布的帖子,通过backref参数定义了反向引用。
这里使用的数据库是SQLite,可以根据需要更改为其他数据库。在if __name__ == '__main__'中,使用db.create_all()创建数据库表,并使用app.run()运行Flask应用
原文地址: http://www.cveoy.top/t/topic/isgB 著作权归作者所有。请勿转载和采集!