我的 Flask 程序收到以下请求,其中包含一些数据#
:
https://som.thing.com/callback#data1=XXX&data2=YYY&data3=...
我需要读取data1
参数,但这似乎不起作用:
@app.route("/callback")
def get_data():
data = request.args.get("data1")
print(data)
我的 Flask 程序收到以下请求,其中包含一些数据#
:
https://som.thing.com/callback#data1=XXX&data2=YYY&data3=...
我需要读取data1
参数,但这似乎不起作用:
@app.route("/callback")
def get_data():
data = request.args.get("data1")
print(data)
URL 的哈希值(后面的所有内容#
)永远不会发送到服务器,浏览器会将其删除,从而使 URL 的那部分完全保留在客户端。根据维基百科:
片段标识符的功能与 URI 的其余部分不同:它的处理完全是客户端,没有 Web 服务器的参与,[...]。当代理(例如 Web 浏览器)向 Web 服务器请求 Web 资源时,代理将 URI 发送到服务器,但不发送片段。
这意味着无论您使用哪个框架,都无法在后端检索它,因为它们都不会收到该数据。
您需要改用查询参数,因此您的 URL 应如下所示:
https://foo.com/bar?data1=ABC&data2=XYZ
在这种情况下,您将能够使用以下方式访问它们request.args
:
from flask import request
@app.route('/bar')
def bar():
page = request.args.get('data1', default = '', type = str)
filter = request.args.get('data2', default = 0, type = int)