在 Flask 中获取没有端口的请求主机名

新手上路,请多包涵

我刚刚使用 request.hostrequest.url_root 设法在 Flask 中获取我的应用程序服务器主机名,但两个字段都返回请求主机名及其端口。

我想使用只返回请求主机名的字段/方法,而不必进行字符串替换(如果有的话)。

原文由 M Rijalul Kahfi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 829
2 个回答

没有单独返回主机名的 Werkzeug(WSGI 工具包 Flask 使用)方法。你可以做的是使用 Python 的 urlparse 模块从 Werkzeug 给你的结果中获取主机名:

蟒蛇3

 from urllib.parse import urlparse

o = urlparse(request.base_url)
print(o.hostname)

蟒蛇2

 from urlparse import urlparse

o = urlparse("http://127.0.0.1:5000/")
print(o.hostname)  # will display '127.0.0.1'

原文由 Juan E. 发布,翻译遵循 CC BY-SA 4.0 许可协议

基于 Juan E 的回答,这是我的

Python3的解决方案:

 from urllib.parse import urlparse
o = urlparse(request.base_url)
host = o.hostname

原文由 Paul Brackin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题