Flask SQLAlchemy 自定义方法

Flask SQLAlchemy custom method

我有一个 Flask SQLAlchemy 模型,我想创建一个名为“uuid”的自定义方法并在 API 响应中使用它。

这是我想在模型内部创建的自定义方法。在 Flask 模型中在哪里以及如何创建它?

def uuid():
    "br-%s", self.id

这是当前模型:

from app import db
from marshmallow import fields

class Build(db.Model):
    __tablename__ = 'builds'
    id = db.Column(db.Integer, primary_key=True)
    product = db.Column(db.String(200))
    # uuid = "build_<id_field>"

class BuildSchema(ma.Schema):
    class Meta:
        fields = ('id',
                  'uuid',
                  'product')

build_schema = BuildSchema()
    

一种方法是使用 built-in @property decorator:

from app import db
from marshmallow import fields

class Build(db.Model):
    __tablename__ = 'builds'
    id = db.Column(db.Integer, primary_key=True)
    product = db.Column(db.String(200))

    @property
    def uuid(self) -> str:
        return "br-%s" % self.id

class BuildSchema(ma.Schema):
    
    id = ma.fields.Integer()
    uuid = ma.fields.String()
    product = ma.fields.String()