Использование Flask API вместо render_template - PullRequest
0 голосов
/ 09 ноября 2018

В прошлом году я разработал большой сайт, используя Flask.

Я использовал метод render_template для отправки данных из бэкэнда во внешний интерфейс и request.form для получения данных из внешнего интерфейса в бэкэнд

Теперь владелец моего продукта хочет, чтобы я использовал «API» вместо вышеуказанных решений. И я полностью запутался, как использовать API.

Должен ли я удалить любой render_template или request.form?

Должен ли я полностью изменить свой бэкэнд и просмотреть функции?

Могу ли я просто изменить render_template и request.form и не вносить изменений в оставшийся код?

Могу ли я использовать шаблон Jinja после использования API? или я должен использовать JavaScript?

мое предыдущее решение было таким:

apps = apps_model.query.all ()
render_template ('index.html' , apps=apps)

и

user_name = request.form ['username']

1 Ответ

0 голосов
/ 09 ноября 2018

владелец моего продукта хочет, чтобы я использовал «API» вместо вышеуказанных решений

Мое понимание этого означает, что ваш менеджер по продукту хочет, чтобы вы отделили бэкэнд от внешнего интерфейса. Проще говоря, вы должны создать [RESTful] API. По сути, вам не нужно использовать render_template для обработки и анализа шаблонов HTML и их отображения конечному пользователю.

Ваш новый API должен возвращать объекты JSON, а затем, на стороне клиента (т. Е. Веб-сайта), API вызывается для создания, обновления, извлечения и удаления данных из базы данных, а затем возвращает информацию клиенту.

from flask import Flask, jsonify

app = Flask(__name__)

app.route("/", methods=["GET"])
def index():
    api_response = {
        "status": "success",
        "message": "Welcome to our API"
    }
    return jsonify(api_response)

Должен ли я удалить любой render_template или request.form?

Вам больше не понадобится render_template, поскольку вы не будете отображать или возвращать HTML-страницы. Однако request.form все еще можно использовать для сбора данных со стороны клиента. В целом, зависит от того, как вы хотите, чтобы клиент взаимодействовал с вашим API

Должен ли я полностью изменить свой бэкэнд и просмотреть функции?

Только изменять / создавать функции просмотра для возврата определенных данных.

Примеры случаев:

Получить всех пользователей: создать маршрут /api/users

Получить пользователя A: создать маршрут /api/users/user_a

Могу ли я просто изменить render_template и request.form и не вносить изменений в оставшийся код?

номер

Могу ли я использовать шаблон Jinja после использования API? или я должен использовать JavaScript?

Очень маловероятно. Вы больше не будете рендерить шаблон. Должен ли я использовать Javascript? Конечно, для вашей клиентской стороны.

См. https://www.restapitutorial.com

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