LINUX.ORG.RU

Сообщения Xld

 

Как во flask в POST запросе сохранить данные для обработки в GET

Форум — Development

Привет, ЛОР!

Написал функцию на js, от которой хочу следующее. Функция из другой функции получает строку и отправляет ее на бэкенд (в моем случае маршрут flask /cart/test_js) и, в случае успеха, редиректит на этот адрес.

Полный код js:

// Function to send docsIds to flask backend (route /cart/test_js).
onst sendDocsIdsToFlask = () => {
    const docsIds = getDocsIds();

    // Create an AJAX request object
    const xhr = new XMLHttpRequest();

    // Set up the request headers and data
    xhr.open("POST", "/cart/test_js", true);
    xhr.setRequestHeader("Content-Type", "application/json");

    // Convert the docsIds variable to a JSON string
    const jsonData = JSON.stringify({ docsIds: docsIds });

    // Send the AJAX request
    xhr.send(jsonData);

    // Handle the response from the server
    xhr.onload = function () {
        if (xhr.status === 200) {
            // console.log("Success!");
            window.location.href = "http://127.0.0.1:5000/cart/test_js";
        } else {
            console.error("Error:", xhr.statusText);
        }
    };

    // Handle any errors that occur during the request
    xhr.onerror = function () {
        console.error("Error occurred:", xhr.statusText);
    };
}

Код маршрута во flask:

@bp.route("/test_js", methods=["GET", "POST"])
@login_required
def test_js():
    print(f"{request.get_json()=}")
    return redirect(url_for('main.index'))

Это не работает. В консоли вижу ошибку

[Error] Failed to load resource: the server responded with a status of 415 (UNSUPPORTED MEDIA TYPE) (test_js, line 0)

Погуглив ошибку, нашел только, что это из-за того, что не указан тип отправляемых данных, хотя он у меня указан (application/json).

Вопросы: 1) как это пофиксить? 2) как при редиректе использовать не захардкоденные адреса, а динамичные из flask типа url_for(...)?

 , , ,

Xld
()

Помощь с архитектурой базы данных

Форум — Development

Привет всем. В продолжении моей предыдущей темы по выбору языка и библиотек/фреймворков, в которой вы мне очень помогли.

Сейчас тренируюсь на всяких простых вещах, понемного переходя на более сложные. Но, как я понял, в любом случае независимо от языка, работа с базой данных будет. Я почитал про РБД, тыкаю sqlite из терминала и через sqlitebrowser. Имитирую архитектуру приложения, которое будет, допустим, предоставлять поиск музыкальных групп по жанру, участникам, альбомам и прочему.

В базе данных 4 таблицы:

  • Названия исполнителей.
  • Имена участников.
  • Названия и год альбомов.
  • Названия песен.

Скажем, есть альбомы, которые пишут несколько исполнителей совместно. Есть случаи, когда люди были в нескольких группах-исполнителях. И так далее. Как в такой ситуации правильно создать связи на примере альбомов?

Есть альбом, его писала одна группа. Значит в таблице альбомы, в поле «Исполнитель» я добавляю ID исполнителя из таблицы исполнителей. Но как быть, если исполнителей несколько и их кол-во заранее неизвестно? Их может быть 2, 3 или 10 (конкретно в моем примере не так много, но могут быть другие немузыкальные направленности, где связей может быть и сто, и миллион). Вместо указания в виде числа ID в таблице альбомов указывать текст с чем-то типа списка с ID с учетом того, что это поле не будет ключевым? Какие-то другие варианты?

 , ,

Xld
()

Совет по выбору библиотеки/фреймворка для web

Форум — Development

Привет, форум.

Я (не разработчик) хочу сделать web приложение, которое будет позволять работать с базой sqlite или другой. В базе будут в 90% случаев простые текстовые записи. На сайте будет поиск + возможность добавления записей и изменения существующих.

Хочется сделать это без всяких *GPT/AI, по-старинке, напрягая в какой-то степени мозг.

Я не знаю языков программирования, кроме поверхностного знакомства с синтаксисом python, javascript, go. Немного знаю html и css. Пусть это не будет отправной точкой для вашего совета, т. к. могу при необходимости изучить другой язык или другой инструмент.

Посоветуйте язык, к нему библиотеку или фреймворк для того, чтобы максимально быстро и просто реализовать мою задумку.

Это домашний проект для удовольствия и облегчения рутинных задач моей семьи. Ни на какие высокие награды за качество кода, глубокие познания особенностей и настройки БД, я не претендую. Просто хочется написать что-то свое, при этом слишком глубоко не ныряя в лишнюю в моем случае информацию.

Возможно ли сделать эти удобства с помощью одного языка вроде javascript? То есть фуллстэк? Шедевров анимации и интерактивности на сайте не надо, только банальные возможности без перезагрузки страницы, например, получать статус какой-то операции на сервере и прочее.

Почему web? Потому, что хочу иметь возможность использовать ресурс с разных устройств, разных платформ, в том числе мобильных. Понимаю, что нужна будет адаптивная (правильно?) верстка, но это, по-моему, проще, чем под каждую платформу писать нативное приложение.

Буду рад вашим советам.

 ,

Xld
()

RSS подписка на новые темы