SQLAlchemy 모델을 사용하여 Flask API를 만들고 있습니다. 쉽게 자체를 덤프 할 수 있도록, 내가 스키마를 가지고 각 모델을 원하는SQLAlchemy 모델에 대한 마쉬멜로우 스키마를 동적으로 생성하는 방법
class EntrySchema(ma.ModelSchema):
class Meta:
model = Entry
: 나는 내가 가진 모든 모델의 스키마를 정의하고 싶지 않아, 나는이 모든 시간을 싶지 않아 . 는 기본 스키마를 작성 및 Schema.Meta.model 작동하지 않았다 설정 :
class Entry(db.Model):
__tablename__ = 'entries'
id = db.Column(db.Integer, primary_key=True)
started_at = db.Column(db.DateTime)
ended_at = db.Column(db.DateTime)
description = db.Column(db.Text())
def __init__(self, data):
for key in data:
setattr(self, key, data[key])
self.Schema = Schema
self.Schema.Meta.model = self.__class__
def dump(self):
schema = self.Schema()
result = schema.dump(self)
return result
class Schema(ma.ModelSchema):
class Meta:
pass
가 왜 모델과 일반적인 스키마가 선언 된 모델과 스키마는 다른 덮어 쓰기? 클래스 속성 Entry.Schema
로 사용할 수 있습니다
def add_schema(cls):
class Schema(ma.ModelSchema):
class Meta:
model = cls
cls.Schema = Schema
return cls
다음
@add_schema
class Entry(db.Model):
...
스키마 :