我不确定这是否是特定的Flask,但当我在dev模式下运行应用程序(http://localhost:5000)时,我无法从网络上的其他机器访问它(使用http://[dev-host-ip]:5000)。例如,当Rails处于开发模式时,它工作得很好。我找不到任何关于Flask开发服务器配置的文档。你知道应该配置什么来实现这个功能吗?
当前回答
对我来说,我遵循上面的答案,并稍加修改:
只需在命令提示符上使用ipconfig获取ipv4地址 转到flask代码所在的文件 在主函数中写入app.run(host= '你的ipv4地址')
Eg:
其他回答
添加主机='0.0.0.0'到app.run '。
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
如果你得到OSError: [WinError 10013]试图访问一个套接字在Windows上的访问权限禁止的方式,你要么没有权限使用端口,或者其他东西正在使用它,你可以通过netstat -na|findstr 5000找到。
进入项目路径 设置FLASK_APP = ABC.py 设置FLASK_ENV =发展
flask运行-h [yourIP] -p 8080 您将在CMD上执行o/p:- *服务Flask应用程序“experimental .py”(延迟加载) *环境:发展 *调试模式:打开 *重新启动stat 调试器已激活! *调试器PIN: 199-519-700 *运行http://[yourIP]:8080/(按CTRL+C退出)
如果你在访问使用PyCharm部署的Flask服务器时遇到问题,请考虑以下因素:
PyCharm不会直接运行你的主.py文件,因此if __name__ == '__main__':中的任何代码都不会被执行,并且任何更改(如app.run(host='0.0.0.0', port=5000))都不会生效。
相反,您应该使用Run Configurations配置Flask服务器,特别是将——host 0.0.0.0——port 5000放置到附加选项字段中。
更多关于配置Flask服务器在PyCharm
这最终对我有用。
import os
然后把它放在你的python app.py或主文件的末尾。
if __name__ == "__main__":
port = int(os.environ.get("PORT", 5000))
app.run(host='0.0.0.0', port=port)
虽然这是可能的,但您不应该在生产中使用Flask开发服务器。Flask开发服务器的设计并不是特别安全、稳定或高效。有关正确的解决方案,请参阅部署文档。
flask run的——host选项或app.run()的host参数控制开发服务器侦听的地址。默认情况下,它运行在localhost上,将其更改为flask run——host=0.0.0.0(或app.run(host="0.0.0.0"))以运行在您机器的所有IP地址上。
0.0.0.0是一个不能直接在浏览器中使用的特殊值,您需要在网络中导航到机器的实际IP地址。您可能还需要调整防火墙以允许外部访问该端口。
Flask快速入门文档在“外部可见服务器”部分解释了这一点:
If you run the server you will notice that the server is only accessible from your own computer, not from any other in the network. This is the default because in debugging mode a user of the application can execute arbitrary Python code on your computer. If you have the debugger disabled or trust the users on your network, you can make the server publicly available simply by adding --host=0.0.0.0 to the command line: $ flask run --host=0.0.0.0 This tells your operating system to listen on all public IPs.
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录