【发布时间】:2016-11-27 19:20:26
【问题描述】:
我想为浮点类型的一天中的每个小时创建一个包含一列的表。 如何摆脱这种冗长的语法:
from app import db
class HourlySchedule(db.Model):
id = db.Column(
db.Integer,
primary_key=True
)
h0 = db.Column(db.Float, nullable=True)
h1 = db.Column(db.Float, nullable=True)
h2 = db.Column(db.Float, nullable=True)
h3 = db.Column(db.Float, nullable=True)
h4 = db.Column(db.Float, nullable=True)
h5 = db.Column(db.Float, nullable=True)
h6 = db.Column(db.Float, nullable=True)
h7 = db.Column(db.Float, nullable=True)
h8 = db.Column(db.Float, nullable=True)
h9 = db.Column(db.Float, nullable=True)
h10 = db.Column(db.Float, nullable=True)
h11 = db.Column(db.Float, nullable=True)
h12 = db.Column(db.Float, nullable=True)
h13 = db.Column(db.Float, nullable=True)
h14 = db.Column(db.Float, nullable=True)
h15 = db.Column(db.Float, nullable=True)
h16 = db.Column(db.Float, nullable=True)
h17 = db.Column(db.Float, nullable=True)
h18 = db.Column(db.Float, nullable=True)
h19 = db.Column(db.Float, nullable=True)
h20 = db.Column(db.Float, nullable=True)
h21 = db.Column(db.Float, nullable=True)
h22 = db.Column(db.Float, nullable=True)
h23 = db.Column(db.Float, nullable=True)
另一个问题是如何对值进行检查(例如 0
作为验证?那么我如何巧妙地为 24 个字段设置验证?
我可以改为使用 SqlAlchemy 添加检查约束吗?
【问题讨论】:
-
如果你真的想在你的表中有 24 列,那么详细的方法没有任何问题。你可以写一个validator 来检查限制。
-
然后我会发布问题“SqlAlchemy 中动态生成的验证器”
标签: python flask sqlalchemy data-modeling