我使用一个flaskapi作为我的角度应用程序的休息点。目前我正在测试API。我测试了我的/users
点,以确保我得到了所有的用户。你知道吗
//importing db, app, models, schema etc.
from flask import jsonify, request
@app.route('/users')
def get_users():
# fetching from database
users_objects = User.query.all()
# transforming into JSON-serializable objects
users_schema = UserSchema(many=True)
result = users_schema.dump(users_objects)
# serializing as JSON
return jsonify(result.data)
成功了。但是,现在我正在尝试获取其他数据(有9000多个对象。。它不起作用(当我尝试查询所有的时候)。我刚拿了第一件东西
@app.route('/aggregated-measurements')
def get_aggregated_measurements():
aggregated_measurements_objects = AggregatedMeasurement.query.first()
# transforming into JSON-serializable objects
aggregated_measurement_schema = AggregatedMeasurementSchema()
result = aggregated_measurement_schema.dump(aggregated_measurements_objects)
return jsonify(result.data)
这给我看了第一次综合测量。但是当我尝试查询所有这些aggregated_measurements_objects = AggregatedMeasurement.query.all()
时,什么都不显示。我在我的jupyter笔记本上做了同样的事情,然后显示了它们。然后我认为这可能是太多的信息,所以我试着像这样限制查询aggregated_measurements_objects = AggregatedMeasurement.query.all()[:5]
。它在jupyter笔记本上工作,但在我到达路线时什么也不显示。你知道吗
我不明白为什么当我到达/users
点时,我可以看到所有这些,但是当我尝试对aggregated-measurements
做同样的操作时,我什么也得不到(即使我限制了查询)。我正在用sqlite数据库使用flask\u sqlalchemy。你知道吗
**使用模型和架构更新**
from datetime import datetime
# ... import db
import pandas as pd
from marshmallow import Schema, fields
class AggregatedMeasurement(db.Model):
id = db.Column(db.Integer, primary_key=True)
created = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
time = db.Column(db.DateTime, nullable=False)
speed = db.Column(db.Float, nullable=False)
direction = db.Column(db.Float, nullable=False)
# related fields
point_id = db.Column(db.Integer, db.ForeignKey('point.id'), nullable=False)
point = db.relationship('Point',backref=db.backref('aggregated_measurements', lazy=True))
class AggregatedMeasurementSchema(Schema):
id = fields.Int(dump_only=True)
time = fields.DateTime()
speed = fields.Number()
direction = fields.Number()
point_id = fields.Number()
第二次更新发现错误。
在验证了它确实命中了db(thankyou@gbozee)之后,我注意到在/aggregated-measurements
路由上,当我创建模式时,我只为一个对象执行了这个操作。我忘了像在users\u模式中那样包含many=True。因此,这就是为什么只有一点出现,当我尝试更多,它没有。我使用的是marshmallow(一个对象序列化包)。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐