如何从Flask-SQLAlchemy关联查询返回序列化JSON?
我来帮你把这组Flask-SQLAlchemy的一对多关联模型整理成清晰的Markdown格式,还附带一点实用说明:
Flask-SQLAlchemy 一对多关联模型定义
这是一个典型的一对多数据关联:一个用户(User)可以拥有多条上传记录(Upload),而每条上传记录仅属于一个用户。完整的模型代码如下:
from flask_sqlalchemy import SQLAlchemy # 初始化SQLAlchemy实例 db = SQLAlchemy() class User(db.Model): # 数据库表名 __tablename__ = "users" # 主键字段 user_id = db.Column(db.Integer, primary_key=True) # 核心字段(按字母顺序排序) email = db.Column(db.String(50), nullable=False, unique=True) password = db.Column(db.String, nullable=False) username = db.Column(db.String(50), unique=True) # 关联关系:一个用户对应多个上传记录 uploads = db.relationship("Upload", backref="user") class Upload(db.Model): # 数据库表名 __tablename__ = "uploads" # 主键字段 upload_id = db.Column(db.Integer, primary_key=True) # 外键:关联User表的user_id,确保上传记录归属有效用户 user_id = db.Column(db.Integer, db.ForeignKey("users.user_id"), nullable=False) # 示例业务字段(可根据实际需求调整) file_name = db.Column(db.String(100), nullable=False) upload_time = db.Column(db.DateTime, nullable=False)
关键关联说明
uploads = db.relationship("Upload", backref="user"):在User模型中声明与Upload的关联,backref="user"会自动给Upload模型添加一个user属性——你可以直接通过upload.user获取该上传记录所属的用户对象,无需手动查询。db.ForeignKey("users.user_id"):这是Upload表的外键约束,它将uploads表的user_id字段与users表的user_id主键绑定,保证数据的一致性(比如不能创建没有归属用户的上传记录)。
内容的提问来源于stack exchange,提问作者user5482893
相关产品推荐
相关产品推荐

