Как запретить переписывать расширение url в нижний регистр в flask

#python #flask

#python #flask

Вопрос:

Я создал базовое приложение, которое отображает разные страницы для отображения списка пользователей в разных командах. У меня есть список команд, указанных в коде:

 pages = ['SysOps', 'NetOps', 'DBOps']
 

Внутри page_view он вызывает внешний метод, который выполняет вызов API и возвращает список объектов на основе имени команды, которая передается. Ниже приведена функция:

 @application.route('/<team>', methods=['POST', 'GET'])
def page_view(team):
  context = { 'team': team, 'item': getApiData(str(team)), 'pages': pages }
  return render_template('index.html', **context)
 

Я передаю список страниц как часть контекста, и цикл jinja for повторяет его, чтобы создать панель навигации.

 <nav class="navbar navbar-dark bg-dark">
  {% for page in pages %}
    <a class="nav-item nav-link" href="{{ url_for('page_view', team=page) }}"><font size="3em" color="white">{{page}}</font></font></a>
  {% endfor %}
</nav>
 

На моей тестовой машине щелчок по ссылке navbar для SysOps приводит к localhost:5000/SysOps успешному завершению. Однако, когда я вручную ввожу URL-адрес с помощью, он немедленно переписывается на localhost:5000/sysops , что не отображает правильную страницу, поскольку это неправильный случай.

Как мне запретить изменение URL-адреса на нижний регистр?

Ответ №1:

Все URL-адреса веб-сайтов отображаются в нижнем регистре, например FACEBOOK.COM , или на любом другом веб-сайте вы будете перенаправлены на версию в нижнем регистре; facebook.com

Комментарии:

1. Я хочу, чтобы все после косой черты оставалось в правильном регистре, например, с https://www.reddit.com/r/StarWars/ Да, сам URL-адрес в нижнем регистре, но фактическая страница частично заглавная.

Ответ №2:

Я не думаю, что вы можете это сделать, поскольку все URL-адреса будут перенаправлены в нижнем регистре. Ваш единственный вариант — сделать так, чтобы страницы отображали все строчные буквы или отправляли данные страницы на маршрут в виде POST запроса.Вместо того, чтобы принимать его в качестве параметра url.