как запросить последний сегмент URL-адреса в Flask - PullRequest
0 голосов
/ 06 августа 2020

Мне кажется, что ответ прост, но я не могу его понять. У меня есть URL:

http://127.0.0.1: 5000 / fight_card / fight / 5

И я пытаюсь использовать только " 5 "в моем коде, так как это идентификатор текущего боя в таблице SQL. До сих пор я пробовал

fight = Fight.query.filter_by(id=request.path).first()

Однако это возвращает:

fight_card/fight/5

Есть ли способ использовать «запрос» для нацеливания только на 5? Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 06 августа 2020

request.path даст вам: /fight_card/fight/5. Затем вы можете split('/') получить список деталей.

0 голосов
/ 06 августа 2020

Вы должны включить переменную current_fight_id в определение вашего маршрута. Затем вы можете получить доступ к этой переменной в своей функции просмотра.


@app.route('/fight_card/fight/<current_fight_id>')
def fight_route(current_fight_id):
   print(current_fight_id) # use variable in route

В качестве альтернативы вы можете использовать подход, который вы используете, но изменить возвращаемую строку. Если у вас есть строка:

endpoint = "fight_card/fight/5" # returned by your current code

Вы можете получить доступ к пятерке (current_fight_id) с помощью:

current_fight_id = endpoint.split("/")[-1] # grab the segment after the last "/"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...