如何根据条件使用两种不同的模式?



我有一个具有以下属性的DatabaseConnection模式:db_typedb_connection_details.

现在,对于我的烧瓶应用程序,我支持两种数据库类型:mysql 和 postgresql,我有两种不同的模式,它们都与具有不同字段的db_connection_details模式有关。

现在,在DatabaseConnection架构中,是否可以根据db_type指定要选择的架构。谢谢!

编辑:

示例输入如下所示:

"training_data": {
"source": "mysql",
"connection_details": {
"a": "",
"b": ""
}
}

DatabaseConnection架构:

class DatabaseConnection(Schema):
source = fields.String(required=True)
connection_details = fields.Nested(ConnectionSchema, required=True)

现在 mysql 模式有ab个字段(如示例中所示(,而 postgres 模式有额外的字段cd。如果源是 mysql 数据库,它应该拾取MySqlConnectionSchema,而如果源是 postgresql 数据库,它应该拾取PostgresConnectionSchema(代替DatabaseConnection架构中的ConnectionSchema字段(。这在棉花糖中可能吗?

您是否尝试过对架构进行子类化并动态选择?像这样的东西。我还没有尝试或测试过它,所以只是一个想法。

class MySql(object):
a = 1
b = 2
class Postgres(object):
a = 1
b = 2
c = 3
d = 4
if _conn = 'mySql':
SubClass = MySql
else:
SubClass = Postgres
class DatabaseConnection(Schema, SubClass):
...

相关内容

  • 没有找到相关文章

最新更新