为什么localhost:5000无法在Flask中运行?

时间:2017-09-09 04:07:07

标签: python flask

我正在使用烧瓶应用工厂模式,并拥有此run.py文件:

instance (Separate a) => Separate (Complex a) where
    d `scale` z = (d `scale`) <$> z

然后我像这样运行应用程序:

from app import create_app

app = create_app()

if __name__ == '__main__':
    app.run(host='localhost', debug=True)

但是当我去http://localhost:5000时,它不起作用。 它说:

  

未找到

     

在服务器上找不到请求的URL。如果您输入了URL   请手动检查您的拼写,然后重试。

可能有什么不对?当我有127.0.0.1地址时,它运作良好...

我需要运行&#34; localhost&#34;因为我正在集成方形付款及其沙盒设置,因此我需要从本地主机&#39;向其API发出请求。

另外,当我在浏览器中发出请求时,在烧瓶响应的终端上有这样的:

python run.py

所以看起来请求到达烧瓶但烧瓶返回404。

以下是我的 init .py文件的一部分:

127.0.0.1 - - [09/Sep/2017 00:30:45] "GET / HTTP/1.1" 404 -
127.0.0.1 - - [09/Sep/2017 00:30:45] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [09/Sep/2017 00:30:45] "GET /favicon.ico HTTP/1.1" 404 -

4 个答案:

答案 0 :(得分:1)

可能需要安装虚拟环境

  

pip install virtualenv

这样做。希望这有效

答案 1 :(得分:0)

简单的替代解决方案是首先检查端口5000是否可用,您可以使用此命令检查:

netstat -lat

查找有关可用端口here的更多信息: 如果你没有义务使用5000端口,你可以尝试任何你想要的东西.. 如果每件事都没问题意味着你的主页有问题,你就没有路由到'/',这就是你去localhost时遇到404错误的原因:5000 /: 所以要纠正它你有3个解决方案:

  1. init .py文件中添加app.route('/')

  2. 在创建应用后直接在run.py中添加它(不是一个好方法)

  3. 尝试使用蓝图

  4. 由于您未提供 init .py代码,请将其添加到run.py,

    from app import create_app
    app = create_app()
    @app.route('/')
    def homepage():
        return 'hello world'
    if __name__ == '__main__':
        app.run(host='localhost', port=9874)
    

    注释中建议的另一个解决方案是通过键入此命令来检查127.0.0.1是否解析为localhost找到主机文件,并检查您是否与我的行相同:

    nano /etc/hosts
    

    并打开文件:

    ##
    # Host Database
    #
    # localhost is used to configure the loopback interface
    # when the system is booting.  Do not change this entry.
    ##
    127.0.0.1       localhost
    255.255.255.255 broadcasthost
    ::1             localhost
    

答案 2 :(得分:0)

主机文件

中没有 localhost 条目

示例主机文件

127.0.0.1       localhost

您可以通过以下方式检查您的主机文件

for linux

sudo vi /etc/hosts

for windows

open this file C:\Windows\System32\Drivers\etc\hosts

如果您的hosts文件中没有localhost,请添加并保存。

答案 3 :(得分:0)

您应尝试将localhost的{​​{1}}换出。

0.0.0.0

它为我在localhost上提供了服务。