@DaniPy
Python

Почему продолжается подставление слеша в url?

Вопрос
Я написал роут так: /<int:info>/
И теперь будет подставляться слеш в конце всегда
Т.е. http://127.0.0.1:5000/3 == http://127.0.0.1:5000/3/
Я поменял роут: /<int:info>
А подстановка слеша продолжается

И раньше, когда я еще не проводил через такой роут /<int:info>/, к примеру, 3 То подстановки не было, а после есть.
Flask
  • Вопрос задан
  • 430 просмотров
Решения вопроса 1
Tark
@Tark
Pyramid'альный мир
Flask’s URL rules are based on Werkzeug’s routing module. The idea behind that module is to ensure beautiful and unique URLs based on precedents laid down by Apache and earlier HTTP servers.

Take these two rules:

@app.route('/projects/')
def projects():
    return 'The project page'

@app.route('/about')
def about():
    return 'The about page'

Though they look rather similar, they differ in their use of the trailing slash in the URL definition. In the first case, the canonical URL for the projects endpoint has a trailing slash. In that sense, it is similar to a folder on a filesystem. Accessing it without a trailing slash will cause Flask to redirect to the canonical URL with the trailing slash.

In the second case, however, the URL is defined without a trailing slash, rather like the pathname of a file on UNIX-like systems. Accessing the URL with a trailing slash will produce a 404 “Not Found” error.
_____________
И раньше, когда я еще не проводил через такой роут /<int:info>/, к примеру, 3 То подстановки не было, а после есть. (с) - что это значит?

Если у вас сейчас путь без слеша перенаправляется на путь со слешем, то это, к сожалению, кеш браузера. Меня очень раздражало в Flask, что приходилось постоянно использовать декоратор "nocache", описанный в самой документации, чтобы страница генерировалась заново при каждом обращении.

Кроме того, чем вам не нравится перенаправление? Неужели было бы лучше, если бы пользователь сам путь поправил и получил 404? Я сейчас как раз переписываю свой пакет под такое же поведение с перенаправлением.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы