在本地主机上运行烧瓶服务器的错误连接被拒绝

时间:2020-04-16 01:13:14

标签: python flask sqlalchemy flask-sqlalchemy

我试图在本地计算机上运行Flask应用程序,但是在浏览器中,我收到错误连接被拒绝的消息,有时我在终端中收到了该消息。该应用程序确实创建了我的表,但是我无法在浏览器中查看它。对于我尝试过的主机,localhost,0.0.0.0和127.0.0.1,对于端口我尝试过的端口5000、8000、8080、8002,每次都遇到相同的错误。我的机器上确实安装了VPN,但是它已关闭,并且在没有运行应用程序的情况下进行了全新的重启,但仍然出现错误。怎么了?

我正在运行Windows 10,并使用一个无聊的虚拟盒子,该虚拟盒子运行ubuntu 16并使用gitbash。我的计算机上有一个用于VPN的ipVanish应用程序,但vpn已关闭,我没有打开应用程序就重新启动,仍然有问题

这是我的代码:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import os

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql+psycopg2://postgres:F00tBall@127.0.0.1:5432/example'
db = SQLAlchemy(app)

class Person(db.Model):
    __tablename__ = 'persons'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(), nullable=False)

db.create_all()

@app.route('/')
def index():
    person = Person.query.first()
    return 'Hello ' + person.name

if __name__ == '__main__':
    app.secret_key = 'super_secret_key'
    app.debug = True
    port = int(os.environ.get('PORT', 5000))
    app.run(host= '127.0.0.1', port=port)

我也尝试过

app.run(host='127.0.0.1', port=5000)

我跑了 `

sudo ufw allow 5000

但这似乎没有任何作用。

这是怎么回事?

2 个答案:

答案 0 :(得分:0)

如果要在VM内运行Flask,则'localhost'表示VM本地。您的浏览器可能在VM外部,因此不在本地。代替127.0.0.1,使用0.0.0.0

再试一次。

答案 1 :(得分:0)

您是否尝试过使用host = 0.0.0.0。

我知道这会导致烧瓶在运行它的机器的IP地址上使用。然后在端口5000上连接到该IP地址?

Configure Flask dev server to be visible across the network