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

M R*_*hfi 9 python port hostname request flask

我刚刚设法使用request.host和request.url_root在Flask中获取我的应用服务器主机名,但两个字段都返回主机名及其端口.我想使用只返回主机名的字段/方法,而不必进行字符串替换,如果有的话.

Vin*_*jan 7

This is working for me in python-flask application.

from flask import Flask, request
print "Base url without port",request.remote_addr
print "Base url with port",request.host_url
Run Code Online (Sandbox Code Playgroud)

  • 那不是服务器主机,那是用户主机 (8认同)

小智 7

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

Python3解决方案:

from urllib.parse import urlparse
o = urlparse(request.base_url)
host = o.hostname
Run Code Online (Sandbox Code Playgroud)


Jua*_* E. 6

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

from urlparse import urlparse

o = urlparse("http://127.0.0.1:5000/")
print o.hostname  # will display '127.0.0.1'
Run Code Online (Sandbox Code Playgroud)