Flask-Sqlalchemy通过循环访问类成员

时间:2018-10-19 11:59:12

标签: python json sqlalchemy

我有一个flask-sqlalchemy数据库类,它具有超过250个成员变量。我需要对它们进行JSON处理以响应POST请求。

我在这里找到this的答案以使用循环访问此成员,并且我将其更改为:

    Logs = apps.models.Logs.query.filter_by(FlightID=fligtID).all() 
    logList = []

    for Log in Logs:
      logDict = {}
      classMembers = [attr for attr in dir(Log) if not callable(getattr(Log, attr)) and not attr.startswith("__") and not attr.startswith("_") and not attr.startswith("meta") and not attr.startswith("query")]
      for member in classMembers:
        logDict[member] = getattr(Log, member) 
      logList.append(logDict)

    return jsonify(logList)

此解决方案有效,但是当我们考虑服务器端的性能时,这是使其成为最佳解决方案的最佳选择。使用flask-sqlalchemy还有其他方法吗?

这里是示例日志摘要,很抱歉,我不能再分享更多。:

class Logs(db_logs.Model):
    __bind_key__ = 'logs'
    __tablename__ = 'logs'

    ID = db_logs.Column(db_logs.Integer, primary_key=True)
    FlightID = db_logs.Column(db_logs.Integer)
    foo_time = db_logs.Column('foo.time', db_logs.Float)
    foo_x = db_logs.Column('foo.x', db_logs.Float)
    foo_gain = db_logs.Column('foo.gain', db_logs.String(255))
    bar_time = db_logs.Column('bar.time', db_logs.Float)

0 个答案:

没有答案