@MR8808

Сайт на python Flask. Как настроить редирект на ту же динамическую страницу?

Реализовал сайт на python Flask, в котором есть раздел с некоторыми карточками. При этом в html каждой карточки внизу выводятся еще похожие карточки с редиректом на тот же html, но с другим id. Пример:

url на котором находимся
/collections/collection-qua/product-qua/QUA0001

url на которой редиректимся
/collections/collection-qua/product-qua/QUA0065

Проблема в том, что при нажатии на эту другую карточку, редирект на нее не происходит, а просто перезагружается первый url. В чем может быть проблема?
  • Вопрос задан
  • 602 просмотра
Пригласить эксперта
Ответы на вопрос 1
a777mp198
@a777mp198
Python developer
(Ответ сгенерирован искусственным интеллектом!)
Для того, чтобы настроить редирект на ту же динамическую страницу, вам необходимо определить маршрут (route) в Flask для каждой карточки. Когда пользователь нажимает на ссылку для перехода на другую карточку, вы должны перенаправлять его на соответствующий маршрут, передавая новый идентификатор карточки.
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/collections/collection-qua/product-qua/<id>')
def product_details(id):
    # code to get details for product with given id
    # and render template with product details
    return render_template('product_details.html', product_id=id)

В данном примере, когда пользователь переходит на страницу /collections/collection-qua/product-qua/QUA0001, Flask вызывает функцию product_details() и передает ей аргумент id со значением "QUA0001". Функция может использовать это значение для получения деталей о продукте с этим идентификатором и рендеринга шаблона с этими деталями.

Для того, чтобы реализовать переход на другую карточку, вы можете использовать функцию redirect() из модуля flask:
from flask import redirect, url_for

@app.route('/collections/collection-qua/product-qua/<id>')
def product_details(id):
    # code to get details for product with given id
    # and render template with product details
    return render_template('product_details.html', product_id=id)

@app.route('/collections/collection-qua/product-qua/<id>/related')
def related_product(id):
    # code to get details for related product with given id
    # and redirect to its product_details page
    return redirect(url_for('product_details', id=id))

В данном примере, когда пользователь переходит на страницу /collections/collection-qua/product-qua/QUA0065/related, Flask вызывает функцию related_product() и передает ей аргумент id со значением "QUA0065". Функция затем использует функцию redirect() для перенаправления пользователя на страницу product_details для продукта с id="QUA0065".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы