我正在开发一个Python Flask应用程序来进行练习。我想访问JS的getCurrentPosition()来获取地理位置。但是,当应用程序在 http://localhost:5000/ 上运行时,我收到一个错误,指出 getCurrentPosition() 和 watchPosition() 在不安全的来源上已被弃用。
有没有办法让它在 Flask 本地主机服务器上工作?
我找到了解决办法。地理定位只能在 HTTPS 请求中使用。 为了将 localhost Flask 应用从 HTTP 转换为 HTTPS,您必须使用 OpenSSL 创建密钥和证书。
按照以下步骤为 Flask localhost 服务器设置 HTTPS 环境
openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem
context = (r"{path}\certificate.pem", r"{path}\key.pem")
if __name__ == '__main__':
app.run(host='0.0.0.0',port=5000,debug=True,ssl_context=context)
path是指存放密钥和证书文件的位置目录。
令我困惑的是,文档似乎很少再提及
app.run()
了。您还可以使用 Flask CLI 设置密钥和证书。检查flask run --help
了解更多信息。
这篇文章解释了不同方法的工作原理如何运行 Flask 应用程序?