如何获取Flask请求的url的不同部分?

我想检测请求是否来自localhost:5000foo.herokuapp.com主机,请求的path是什么。 如何获取有关Flask请求的信息?

您可以通过多个Request字段来检查url:

用户请求以下URL:

  http://www.example.com/myapplication/page.html?x=y 

在这种情况下,上述属性的值如下所示:

  path /page.html script_root /myapplication base_url http://www.example.com/myapplication/page.html url http://www.example.com/myapplication/page.html?x=y url_root http://www.example.com/myapplication/ 

你可以很容易地提取适当的拆分主机部分。

你应该试试:

 request.url 

它假设总是工作,即使在本地主机上(刚刚做到了)。

另一个例子:

 request: http://127.0.0.1:5000/alert/dingding/test 

然后:

 request.url: http://127.0.0.1:5000/alert/dingding/test request.url_charset: utf-8 request.url_root: http://127.0.0.1:5000/ str(request.url_rule): /alert/dingding/test request.host_url: http://127.0.0.1:5000/ request.host: 127.0.0.1:5000 request.script_root: request.base_url: http://127.0.0.1:5000/alert/dingding/test request.path: /alert/dingding/test