在 Flask 中,你可以使用 SQLAlchemy 来定义和管理数据库模型。为了实现任务表的负责人和执行人同时关联到用户表,你可以定义三个模型:User、Task 和 Assignment。

下面是一个示例代码:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

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

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

class Task(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100))
    assignee_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    assignee = db.relationship('User', foreign_keys=[assignee_id])
    executor_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    executor = db.relationship('User', foreign_keys=[executor_id])

class Assignment(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    task_id = db.Column(db.Integer, db.ForeignKey('task.id'))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    user = db.relationship('User', foreign_keys=[user_id])

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

在上面的代码中,我们定义了三个模型:User、Task 和 Assignment。User 模型代表用户,Task 模型代表任务,Assignment 模型代表任务的负责人和执行人之间的关联关系。

Task 模型中有两个外键字段:assignee_id 和 executor_id,它们分别关联到 User 模型的 id 字段。同时,我们使用 db.relationship() 来定义 assignee 和 executor 属性,通过 foreign_keys 参数来指定外键字段。

Assignment 模型中有两个外键字段:task_id 和 user_id,分别关联到 Task 模型和 User 模型的 id 字段。同样,我们使用 db.relationship() 来定义 user 属性,通过 foreign_keys 参数来指定外键字段。

在你的应用程序中,你可以使用这些模型来处理任务表和用户表之间的关系。例如,你可以通过查询任务的 assignee 和 executor 属性来获取任务的负责人和执行人的详细信息。

这只是一个简单示例,你可以根据你的实际需求对模型进行更多的定制和扩展。希望对你有所帮助!

Flask SQLAlchemy: 多对多关联 - 任务负责人与执行人

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

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