【发布时间】:2020-10-12 21:48:06
【问题描述】:
我构建了与 mysql 数据库连接的 flask 应用程序。
我尝试推入我的数据库表以保留列表(具有 500 个浮点数的向量)。
每个列名应该是vector_var_{number_of_element}
我想以聪明的方式做到这一点,而不是从手指声明 500 个字段。
class FaceVector(db.Model):
id = db.Column(db.Integer, primary_key=True)
vector_var_1 = db.Column(db.Float)
vector_var_2 = db.Column(db.Float)
vector_var_3 = db.Column(db.Float)
vector_var_4 = db.Column(db.Float)
(...)
vector_var_500 = db.Column(db.Float)
我考虑使用exec
field_pattern = 'vector_var_{}'
for iteration in range(500):
exec("%s = %s" % (field_pattern.format(iteration), db.Column(db.Float)))
我不确定它是否安全,这是一种好习惯吗?
你对这个案子有更好的主意吗?
【问题讨论】:
-
如果你想以一种聪明的方式来做,为什么不将所有 500 个值序列化到一个字段中呢?我认为这些都不需要索引,那为什么要 500 个单独的列呢?
-
这听起来是个糟糕的设计
标签: python mysql python-3.x flask-sqlalchemy