我不确定这是否是特定的Flask,但当我在dev模式下运行应用程序(http://localhost:5000)时,我无法从网络上的其他机器访问它(使用http://[dev-host-ip]:5000)。例如,当Rails处于开发模式时,它工作得很好。我找不到任何关于Flask开发服务器配置的文档。你知道应该配置什么来实现这个功能吗?
当前回答
这最终对我有用。
import os
然后把它放在你的python app.py或主文件的末尾。
if __name__ == "__main__":
port = int(os.environ.get("PORT", 5000))
app.run(host='0.0.0.0', port=port)
其他回答
在CMD(命令提示符)上进入您的项目路径,并执行以下命令:-
设置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退出)
现在您可以在另一台机器上使用http://[yourIP]:8080/ url访问您的flask应用程序
进入项目路径 设置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退出)
这最终对我有用。
import os
然后把它放在你的python app.py或主文件的末尾。
if __name__ == "__main__":
port = int(os.environ.get("PORT", 5000))
app.run(host='0.0.0.0', port=port)
您还可以通过环境变量设置主机(将其暴露在面向IP地址的网络上)和端口。
$ export FLASK_APP=app.py
$ export FLASK_ENV=development
$ export FLASK_RUN_PORT=8000
$ export FLASK_RUN_HOST=0.0.0.0
$ flask run
* Serving Flask app "app.py" (lazy loading)
* Environment: development
* Debug mode: on
* Running on https://0.0.0.0:8000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 329-665-000
参见如何获取所有可用的命令选项来设置环境变量?
虽然这是可能的,但您不应该在生产中使用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.
推荐文章
- 在每个列表元素上调用int()函数?
- 当使用代码存储库时,如何引用资源的相对路径
- 如何在Flask-SQLAlchemy中按id删除记录
- 在Python中插入列表的第一个位置
- Python Pandas只合并某些列
- 如何在一行中连接两个集而不使用“|”
- 从字符串中移除前缀
- 代码结束时发出警报
- 如何在Python中按字母顺序排序字符串中的字母
- 在matplotlib中将y轴标签添加到次要y轴
- 如何消除数独方块的凹凸缺陷?
- 为什么出现这个UnboundLocalError(闭包)?
- 使用Python请求的异步请求
- 如何检查一个对象是否是python中的生成器对象?
- 如何从Python包内读取(静态)文件?