Службы Flask и кэширование сложных данных - PullRequest
0 голосов
/ 23 марта 2019

У меня есть вопрос, относящийся к Flask и к тому, как он обрабатывает сложные данные, например, объект, не поддерживающий JSON-сериализацию.В Angular вы можете создать сервис и сохранить данные в компоненте, при изменении данных HTML данные в компоненте обновляются автоматически, по крайней мере, я могу ссылаться на него.

В Flask кажется, что мне нужносоздавать запросы для доступа к данным.

Пример: скажем, у меня есть объект, к которому я хочу получить доступ во Flask, например, "CarListTemplate".Когда я захожу на страницу индекса, CarListTemplate заполняется сложными классами «CarDataObject», которые содержат методы и свойства и не могут быть преобразованы в JSON.Кажется, Flask не дает мне возможности повторно использовать объект CarListTemplate и его данные для создания динамических списков.Поэтому, когда я хочу создать что-то динамически, мне нужно выполнить запрос, снова создав «CarListTemplate», а затем проанализировать данные в функции маршрута, которой я сейчас являюсь.

Это правильно, или я просто слишком плохо разбираюсь в колбе, чтобы понять это?

Я приложил код Пример:

@app.route('/')
@app.route('/index', methods=['GET', 'POST'])
def index():
   carlist = CarListTemplate() 
   # This object got a response from an API to get a list of CarDataObjects and 
   # is used by the HTML view from Flask to show the returned data

   return render_template('index.html', carlist = carlist)

@app.route("/cars/<car_id>")
def getCarData(car_id):
    carlist = CarListTemplate() 

    # I have to call this object again 
    #although I would love to store the complex data I already needed in "index"
    #somewhere. A flask-"Session"-Object only allows me to store JSON data.

    carData = carlist.getCarData(car_id)

    return jsonify(carData)

Я хотел сохранить"carList" как вид глобальной переменной.Но, конечно, никому не нравятся глобальные переменные, и я подумал, что может быть лучший способ хранить информацию во время моего сеанса где-нибудь в фоновом режиме, сокращая вызовы API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...