Я пишу приложение Flask. В этом я раскрыл API-интерфейс, подобный следующему:
@app.route("/<project>/<changeId>/<change>/<patch>/<branch>")
def home(project, changeId, change, patch, branch):
...................
Теперь я вызываю этот API из моего кода переднего плана.
Здесь значение переменной проекта, которое я получу, будет закодировано в URL (https://www.w3schools.com/jsref/jsref_encodeuricomponent.asp),), так что если проект в Javascript будет A/B
, он будет преобразован в A%B
Теперь я хочу преобразовать его обратно в A/B
в своем приложении для колб. Как я могу это сделать?
Я пытался посмотреть на это: https://blog.revathskumar.com/2011/10/python-url-encoding-and-decoding.html
Но это не работает с тем, чего я хочу достичь.
Редактировать:
Итак, я сделал следующее:
из urllib import parse
@app.route("/<project>/<changeId>/<change>/<patch>/<path:branch>")
def home(project, changeId, change, patch, branch):
app.logger.info('project is %s, changeId is %s, change is %s, patch is %s, branch is %s', project, changeId, change, patch, branch)
projectnew = parse.unquote(project)
app.logger.info('project is %s, changeId is %s, change is %s, patch is %s, branch is %s', projectnew, changeId, change, patch, branch)
Теперь, как ни странно, когда я смотрю на строки журнала, OP для проекта одинакова (A) в обоих случаях, даже если я передаю закодированную строку.
Например, значение получения проектапередается что-то вроде: A%2FB
.
Выход после разбора должен быть project = A/B
, тогда как в обоих случаях OP равен project = A
Я что-то не так делаюздесь