Я использую маршрут, подобный следующему, в моем приложении:
Route(r'/thing/<some_id>/foo', handler=ThingFoo, name="thing-foo")
Это используется для создания URL-адреса с использованием uri_for('thing-foo', some_id="something")
, который возвращается пользователю, которого они хранят. Затем в другом запросе пользователь отправляет URL-адрес, возвращенный ему ранее, где его необходимо проанализировать.
Я хотел бы извлечь значение шаблона <some_id>
из предоставленного URL-адреса аналогично тому, как это делает маршрутизатор, чтобы передать значение методам get/post RequestHandler, но документации по этому вопросу, похоже, не хватает.
Есть ли что-то вроде следующего?
route, some_id = webapp2.extract_uri(the_url)
(Конечно, я мог бы извлечь значение напрямую, используя регулярное выражение, но это не кажется очень СУХИМ).
Вот пример того, что я хочу сделать.
def image_url(request, image_blob_key):
if image_blob_key:
return request.url_for('image', resource=image_blob_key, _full=True)
else:
return None
def blob_key_from_image_url(image_url):
# Do something here to calculate the blob_key from the URL.
return blob_key
В одной части моего приложения image_url вычисляется из blob_key и передается пользователю. Позже, если они (например) захотят удалить изображение, они передают URL-адрес обратно в запросе POST, и я хочу извлечь из него ключ blob_key, чтобы я мог его удалить.