无法获取带有烧瓶请求的用户浏览器



我试图在请求时获取浏览器名称,但我得到了"您的浏览器为无!">

app = Flask(__name__)
@app.route('/')
def index():
user_agent = request.user_agent.browser
return 'Your browser is {}!'.format(user_agent)

但如果我提出请求:

user_agent = request.user_agent

我得到'您的浏览器是Mozilla/5.0(Windows NT 10.0;Win64;x64(AppleWebKit/537.36(KHTML,类似Gecko(Chrome/104.0Safari/537.36!'浏览器名称和版本在一个字符串中,但为什么我不能使用以下方式获取:request.user_agent.browser

我想你刚刚回答了自己的问题。如果request.user_agent返回的是字符串而不是对象,则request.user_agent.browser不存在。因此,它将不返回任何值。

如果你试图获得用户代理是因为你想知道天气或不在那里使用移动浏览器,那么也许你应该使用一些正则表达式来检查字符串中的关键字,例如"天气";Mobile";。以下是我正在编写的一些代码的示例,这些代码正是这样做的:

@app.route("/")
@app.route("/home")
def home():
browser = request.user_agent
browser = re.search("Mobile", str(browser))
if browser != None:
return render_template("mobile-index.html") 
else:
return render_template("index.html")

如果用户代理还有其他用途,那么也许应该找到解决该特定问题的方法。但该解决方案可能需要正则表达式来解析该字符串。

最新更新