Bha*_*kar 5 python werkzeug flask
我看到 Flask 在 Request 中提供了一些已解析的字段,但是 url 是在删除转义之后的。在 Flask 进行取消转义之前,有什么方法可以访问 url 吗?
例如,当休息客户端向“ http://www.example.com/my_url%20is%20here?arg1=2&?arg2=3 ”发出请求时,Flask 会向我提供“ http://www ”的 request.base_url .example.com/my_url在这里”,其中 %20 被空格替换。我可以自己引用此内容来获取某人响应时的原始 URL,但最好我想访问客户端发送的原始 URL,而不是派生它。
这些字段不是URL,甚至不是 URI,它们是IRI。使用iri_to_uri:
from werkzeug.urls import iri_to_uri
iri_to_uri(request.url)
Run Code Online (Sandbox Code Playgroud)
"""
...
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'
...
"""
Run Code Online (Sandbox Code Playgroud)
Flask 和 werkzeug 的好处之一是您始终可以在源代码中跟踪所有内容。
小智 -2
你的意思是 %XX 逃逸?
from urllib.parse import quote
quote(url)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1812 次 |
| 最近记录: |