为什么我的 pycharm 烧瓶服务器没有运行?

时间:2021-06-19 09:28:09

标签: python flask

我正在 Pycharm 上使用 Flask 后端的 Android 应用程序做一个项目,但遇到了无法连接到 Flask 服务器的问题。我发现我的服务器由于某种原因无法正常启动,即使它显示

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

浏览器显示错误

Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

还注意到我无法更改端口,它只能在此地址上运行。 为了澄清一个疑问,我运行了一个旧项目,该项目正在运行,但发现它也无法运行并显示相同的错误。 最后,我刚刚创建了一个新项目来运行 hello world 的默认自动生成代码,这也显示错误。

from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run()

可能是什么问题?和pycharm有关系吗?

1 个答案:

答案 0 :(得分:0)

这与您实际运行 Flask 的方式有关。如果您只使用 flask run 并且您在代码中的 Flask 应用定义中没有任何特定设置,它将以开发模式运行,并且只能从运行它的机器访问。
Running on http://127.0.0.1:5000/ 表示它仅在本地运行。查看 127.0.0.1 IP 地址的含义。请注意,localhost 是此的同义词。维基百科文章 here

如果您希望通过本地网络使用应用程序(Android 应用程序在开发期间连接到它所需的 IIRC),您需要更改运行 Flask 应用程序的方式。要从 Flask quickstart 文档中复制/粘贴:

<块引用>

外部可见服务器
如果您运行服务器,您会注意到 该服务器只能从您自己的计算机访问,不能从任何 网络中的其他。这是默认设置,因为在调试模式下 应用程序的用户可以在您的计算机上执行任意 Python 代码 电脑。

如果您禁用了调试器或信任您网络上的用户, 您只需添加即可使服务器公开可用 --host=0.0.0.0 到命令行:

$ flask run --host=0.0.0.0
这会告诉您的操作系统侦听所有公共 IP。