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

Posted

技术标签:

【中文标题】无法在 Flask 本地主机应用程序中使用 getCurrentPosition()【英文标题】:unable to use getCurrentPosition() in a Flask local host app 【发布时间】:2021-09-23 10:44:12 【问题描述】:

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

有没有办法在烧瓶本地主机服务器上工作?

【问题讨论】:

【参考方案1】:

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

按照以下步骤为烧瓶 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)

路径是指存储密钥和证书文件的位置目录。

【讨论】:

以上是关于无法在 Flask 本地主机应用程序中使用 getCurrentPosition()的主要内容,如果未能解决你的问题,请参考以下文章

无法通过主机访问Docker flask服务器容器

使用数据库连接将代码部署到 Azure Web 时,Flask 应用程序无法呈现,但在本地服务器上工作正常

我如何运行 python flask 并获取本地主机的链接? [复制]

Flask post / redirect / get模式无法从错误中恢复

无法在 FLASK 中连接 2 个应用程序

如何从flutter应用程序向本地主机发出http get请求?