Просмотр моделей против пользовательских диктов при возврате данных в веб-приложении на Python? - PullRequest
0 голосов
/ 05 марта 2019

Я относительно новый пользователь Python из мира .NET.

Я работаю над веб-приложением с бэкэндом Python (используя Flask и SQLAlchemy), где модели БД определены с использованием SQLAlchemy, и сейчас я пишу свою первую функцию, в которой я хочу получить данные из базы данных и вывести на фронтэнд.

Вот нефункциональный пример (поскольку SQLAlchemy не может быть jsonified напрямую) просто чтобы показать, что я хочу сделать:

@app.route('/validationrules', methods=["GET"])
@login_required
def getValidationRules():

    return jsonify(db.session.query(ValidationRules).all())

У меня вопрос: принято ли создавать модели представлений при использовании стека, о котором я упоминал выше, и использовать их для создания моста между SQLAlchemy и json? Или я просто создаю собственный dict в каждом методе и jsonify это?

В некоторых результатах поиска также предлагалось создать базовую модель с помощью метода to_dict, и все мои модели баз данных унаследованы от этого, но мне это кажется слишком связанным.

Каковы лучшие практики для такого случая?

1 Ответ

0 голосов
/ 05 марта 2019

ОБНОВЛЕНИЕ : После этого ответа я бы теперь изменил свой ответ на использование зефира / зефира-sqlalchemy.

Предыдущий ответ:

Я точно не знаю ответа, но ...

В издании Мигеля Гринберга Flask Web Development, 2-е издание, стр. 210-213, он применяет подход, чтобы иметь метод

def Post(db.Model):
    # ...
    def to_json(self):
        json_post = {
            ** json using model **
        }
        return json_post

определено в models.py

...