Сопоставление параметров пути URL с Flask - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь сопоставить параметр пути с частью URL-адреса запроса:

пример

Я делаю это, но это не работает:

@app.route("/people/:<string:id>", methods=['GET'])
def api_search_a_person(id):
   return Id

Кто-нибудь знает, как получить значение после «:» (строка «123456-7» в примере)

Ответы [ 2 ]

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

: - это специальный символ URI, потому что он используется для определения протокола или порта, поэтому вполне вероятно, что ваш браузер URI кодирует символ.

Действительно ли вам нужен этот символ тем не мение ? Разве вы не можете просто удалить его (http://host.net/people/123456-7) или использовать вместо него параметры URI http://host.net/people/?123456-7?

Если вы действительно хотите использовать :, экранируйте его с обоих концов (escape-символ %3A).

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

Попробуйте следующее:

@app.route("/people/:<string_id>", methods=['GET'])  # notice _ instead : 
def api_search_a_person(string_id):  # extracts the string_id from the request url
    return string_id  # returns the mapped string_id

Непонятно, почему вы использовали <string:id> с : внутри.

А также то, что Id представляет в ответе (возможно, вы имели в виду id из параметра метода ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...