Я пытаюсь собрать компоненты из своего API фляги. Когда я попадаю на маршрут, я вижу данные по нужным объектам. Тем не менее, когда я запрошен в надежде увидеть его из моего внешнего интерфейса, я только вижу определенные свойства (те, которые не имеют '_' в их именах).
Например .. это то, что я получаю, когда попадаю по маршруту .../measurements
:
[
{
"availability": 100.0,
"id": 1,
"time": "2015-11-28T00:10:00+00:00",
"wind_direction": 30,
"wind_speed": 1.41,
"wind_speed_dispersion": 0.22
},
{
"availability": 100.0,
"id": 2,
"time": "2015-11-28T00:20:00+00:00",
"wind_direction": 30.4,
"wind_speed": 1.45,
"wind_speed_dispersion": 0.2
},
{
"availability": 100.0,
"id": 3,
"time": "2015-11-28T00:30:00+00:00",
"wind_direction": 30.1,
"wind_speed": 1.01,
"wind_speed_dispersion": 0.2
},....
}
Однако, когда я интегрирую Flask с Angular и хочу отобразить те же данные в виде списка. Я получаю значения только для тех без '_' в названии угловой модели. Например я получаю:
Моя модель в приложении Flask выглядит следующим образом ..
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)
wind_speed = db.Column(db.Float, nullable=False) # in m/s
wind_direction = db.Column(db.Float, nullable=False) # in degrees
wind_speed_dispersion = db.Column(db.Float, nullable=False) # in m/s
availability = db.Column(db.Float, nullable=False) # in percent
И модель моего углового приложения:
export class AggregatedMeasurement {
constructor(
public id: number,
public time: Date,
public windSpeed: number,
public windDirection: number,
public windSpeedDispersion: number,
public availability: number,
) { }
}
В итоге я использовал зефир для сериализации / десериализации объектов. И так выглядит схема.
class AggregatedMeasurementSchema(Schema):
id = fields.Int(dump_only=True)
time = fields.DateTime()
windSpeed = fields.Number()
wind_direction = fields.Number()
wind_speed_dispersion = fields.Number()
availability = fields.Number()
Угловой component.html
<ul *ngFor="let aggregatedMeasurement of aggregatedMeasurementsList">
<li> id: {{ aggregatedMeasurement.id }} </li>
<li> Time: {{ aggregatedMeasurement.time }} </li>
<li> Wind Speed:{{ aggregatedMeasurement.windSpeed }} </li>
<li> Wind Direction: {{ aggregatedMeasurement.windDirection }} </li>
<li> Wind Dispersion:{{ aggregatedMeasurement.windSpeedDispersion }} </li>
<li> Availability:{{ aggregatedMeasurement.availability }} </li>
</ul>
Я сделал модели колб с такими именами, чтобы сохранить практику именования python. Я просто попытался изменить угловую модель , чтобы имена соответствовали модели и схеме колбы, чтобы ... вместо public windSpeed
до public wind_speed
, очистил кэш и перезапустил серверы ... и он по-прежнему только отображает те из ранее.
Я впервые использую Angular / используя Flask API. Спасибо