编程语言
首页 > 编程语言> > 在Python Flask中,如何在转义前访问完整的原始URL

在Python Flask中,如何在转义前访问完整的原始URL

作者:互联网

我看到Flask在Request中提供了一些parsed fields,但是该网址是在删除转义符之后的.在Flask完成转义之前,有什么方法可以访问URL?

例如,当其他客户请求“ http://www.example.com/my_url%20is%20here?arg1=2&?arg2=3”时,Flask向我提供了“ http://www.example.com/my_url在这里”的request.base_url,其中用空格代替.我可以自己引用它,以在有人回复时获得原始URL,但是最好是我希望访问原始URL,因为它是由客户端发送的,而不是派生它.

解决方法:

字段不是URLs, or even URIs,而是IRI.使用iri_to_uri:

from werkzeug.urls import iri_to_uri
iri_to_uri(request.url)

werkzeug/wrappers.py开始:

"""
...
Note that the string returned might contain unicode characters as the
representation is an IRI not an URI.  If you need an ASCII only
representation you can use the :func:`~werkzeug.urls.iri_to_uri`
function:
>>> from werkzeug.urls import iri_to_uri
>>> iri_to_uri(get_current_url(env))
'http://localhost/script/?param=foo'
...
"""

flask和werkzeug的优点之一是,您始终可以在源代码中始终遵循这些内容.

标签:flask,werkzeug,python
来源: https://codeday.me/bug/20191120/2046922.html