无法在 Flask 本地主机应用程序中使用 getCurrentPosition()

unable to use getCurrentPosition() in a Flask local host app

我正在开发一个 python flask 应用程序来练习。我想访问 JS 的 getCurrentPosition() 来获取地理位置。但是,由于该应用程序在 http://localhost:5000/ 上 运行,我收到一个错误,即 getCurrentPosition() 和 watchPosition() 在不安全的来源 上被弃用。

有没有办法让它在 flask localhost 服务器上运行?

我找到了解决办法。地理定位只能用于 HTTPS 请求。 为了将您的 localhost flask 应用程序从 HTTP 转换为 HTTPS,您必须使用 OpenSSL 创建密钥和证书。

按照以下步骤为 flask localhost 服务器设置 HTTPS 环境

  • 如果您已经安装了 Git,那么 OpenSSL 命令会包含在一个包中。在您要存储文件的位置打开 git bash。
  • 运行 Git Bash.
  • 中的以下命令

openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out certificate.pem

  • 将 python 脚本中的 app.run() 方法更改为以下
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指的是密钥和证书文件存放的位置目录。