Python 正在尝试创建连接到PostgreSQL数据库的简单Flask服务

Python 正在尝试创建连接到PostgreSQL数据库的简单Flask服务,python,sqlalchemy,flask,psycopg2,google-compute-engine,Python,Sqlalchemy,Flask,Psycopg2,Google Compute Engine,我是烧瓶和计算引擎的初学者。我已经用表user和存储过程insert\u user创建了一个数据库(myDB) 现在我希望创建一个简单的Python/Flask服务,它将连接到数据库并执行存储过程(Python、Flask、Sqlalchemy都已安装)。这就是我尝试过但失败的地方: #!flask/bin/python from flask import Flask from flask.ext.sqlalchemy import SQLAlchemy app = Flask(__name

我是烧瓶和计算引擎的初学者。我已经用表user和存储过程insert\u user创建了一个数据库(myDB)

现在我希望创建一个简单的Python/Flask服务,它将连接到数据库并执行存储过程(Python、Flask、Sqlalchemy都已安装)。这就是我尝试过但失败的地方:

#!flask/bin/python

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://localhost/mydb'
db = SQLAlchemy(app)

@app.route('/')
def index():
    return "Hello, World!" #checking the service responds

@app.route('/test')
def callSP():
    connection = db.connect()
    trans = connection.begin()
    return "Done"

if __name__ == '__main__':
    app.run(host = '0.0.0.0' , debug = True) #for connecting from remote machine
我正在尝试执行脚本,但出现以下错误:

socket.error:[Errno 98]地址已在使用中

但是,没有其他正在运行的服务

我也试过了

from sqlalchemy import create_engine

@app.route('/test')
def callSP():
    engine = create_engine('postgresql://localhost/mydb')
    connection = engine.connect()
    trans = connection.begin()
    return "Done"
得到了相同的错误,完整的回溯如下所示:

Traceback (most recent call last):
  File "./testRun2.py", line 24, in <module>
    app.run(host = '0.0.0.0' , debug = True) #for connecting from remote machine
  File "./flask/lib/python2.7/site-packages/flask/app.py", line 772, in run
    run_simple(host, port, self, **options)
  File "./flask/lib/python2.7/site-packages/werkzeug/serving.py", line 706, in run_simple
    test_socket.bind((hostname, port))
  File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use
回溯(最近一次呼叫最后一次):
文件“/testRun2.py”,第24行,在
app.run(host='0.0.0',debug=True)#用于从远程计算机连接
文件“/flask/lib/python2.7/site packages/flask/app.py”,第772行,运行中
运行简单(主机、端口、自身,**选项)
文件“/flask/lib/python2.7/site packages/werkzeug/serving.py”,第706行,简单运行
test_socket.bind((主机名、端口))
文件“/usr/lib/python2.7/socket.py”,第224行,meth格式
返回getattr(self.\u sock,name)(*args)
socket.error:[Errno 98]地址已在使用中

什么是完整的回溯?另外,您是否100%确定没有其他应用程序正在侦听端口5000?@Blender我确定没有其他进程正在侦听此端口,也尝试过使用lsof进行查找,但我的计算机上没有安装它,是否有其他方法检查和终止进程?我已经用回溯编辑了这个问题。您可以通过尝试另一个端口并查看是否出现相同的错误来缩小问题范围。
app.run(host='0.0.0.0',debug=True,port=5001)
@liva:您将端口号与进程号混淆了。完全不同。@liva:要按端口号定位进程,您需要使用
netstat-b-a-n | grep 5000 | grep 5000
。它应该向您显示在端口5000上侦听的进程列表。