小编MGm*_*uer的帖子

使用 Marshmallow 进行关系序列化非常慢

我的数据库中有以下示例表,我通过 Flask_SQLAlchemy 管理该表。

class Employee(db.Model):
    __tablename__ = 'employee'
    id = db.Column(db.Integer, primary_key=True)
    salutation = db.Column(db.String(250), nullable=False)
    first_name = db.Column(db.String(250), nullable=False)
    last_name = db.Column(db.String(250), nullable=False)
    
    employments = db.relationship('Employment', foreign_keys='Employment.employee_id', backref="employee", lazy=True)
Run Code Online (Sandbox Code Playgroud)

我的 Flask 架构如下所示:

class EmployeeSchema(mm.SQLAlchemyAutoSchema):
    class Meta:
        model = DB_employee.Employee
        include_fk = True
        include_relationships = True
Run Code Online (Sandbox Code Playgroud)

以下是我的员工 GET 路由:

class EmployeesListAPI(Resource):
    def __init__(self):
        self.reqparse_get = reqparse.RequestParser()
        self.reqparse_get.add_argument('employee_id', type=int, action='append', required=False, location='args')
        self.reqparse_get.add_argument('salutation', type=str, action='append', required=False, location='args')
        self.reqparse_get.add_argument('first_name', type=str, required=False, location='args')
        self.reqparse_get.add_argument('last_name', type=str, required=False, location='args')
        
        super(EmployeesListAPI, self).__init__()

    def get(self):
        get_args = …
Run Code Online (Sandbox Code Playgroud)

sqlalchemy flask-sqlalchemy flask-restful marshmallow flask-marshmallow

5
推荐指数
0
解决办法
702
查看次数