有没有办法确定向服务器请求的路径是什么,包括它是否包含问号?应用
from flask import Flask, Response, request
def root():
return Response(
f'full_path:{request.full_path} '
f'path:{request.path} '
f'query_string:{request.query_string} '
f'url:{request.url}'
)
app = Flask('app')
app.add_url_rule('/', view_func=root)
app.run(host='0.0.0.0', port=8081, debug=False)
总是导致
完整路径:/? path:/query_string:b'' url:http://localhost:8081/
如果有要求
http://localhost:8081/?
或
http://localhost:8081/
这在很多情况下似乎并不重要,但我正在使用多个重定向进行身份验证流程,其中用户最终会到达与他们开始时完全相同的 URL。目前,我看不出有什么方法可以确保 Flask 发生这种情况。
最佳答案
除了您已经提到的字段外,“环境”字段中的值可能对您的情况有用:
def root():
return Response(
f'raw_uri:{request.environ["RAW_URI"]} '
f'request_uri:{request.environ["REQUEST_URI"]}'
)
输入:
http://localhost:8081/?
输出:
raw_uri:/?
request_uri:/?
输入:
http://localhost:8081/
输出:
raw_uri:/
request_uri:/
关于python - Flask 请求 : determine exact path, 包括是否有问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57440598/