如何在本地运行Postgres

时间:2012-12-09 03:27:38

标签: python postgresql heroku flask

我阅读了Flask的Postgres文档

他们说要运行Postgres你应该有以下代码

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

我如何知道我的数据库名称?

我写了db作为名字 - 但我收到了错误

sqlalchemy.exc.OperationalError: (OperationalError) FATAL:  database "[db]" 
does not exist

如果有帮助的话,用Flask运行Heroku

2 个答案:

答案 0 :(得分:21)

第一步是让Flask + Postgresql在本地运行,第一步是 install postgresql on your machine。接下来,您应该安装python drivers for postgresql

对于Windows,您可以使用windows installer for postgresqlwindows installer for the python drivers

完成上述两个步骤后,您需要create a database

对于Windows,您可以使用捆绑的pgadminIII工具。这是一个video,展示了如何做到这一点。

例如,以下是创建名为the_database的数据库的方法,并使用内置工具databaseuser创建一个名为P@ssw0rd且密码为psql的用户:

$ psql -d template1 -U postgres
template1=# CREATE USER databaseuser WITH PASSWORD 'P@ssw0rd';
template1=# CREATE DATABASE the_database;
template1=# GRANT ALL PRIVILEGES ON DATABASE the_database to databaseuser;
template1=# \q

以下是使用上述信息配置应用程序的方法:

db_conn = 'postgresql+psycopg2://databaseuser:P@ssw0rd@localhost/the_database' 
app = Flask(__name__) 
app.config['SQLALCHEMY_DATABASE_URI'] = db_conn
db = SQLAlchemy(app)

答案 1 :(得分:1)

我没有使用Heroku的经验,但是根据你的消息我会说你没有运行PostgreSQL,你根本就没有数据库。看起来在这里他们有一些信息https://postgres.heroku.com/:)

但是在您的主题中,您询问了localhost PostgreSQL ...因此,如果您想在本地运行您的设置,首先要检查的是您是否已安装并运行PostgreSQL。如果这样做,请尝试使用pgAdmin或从控制台和create database连接到它。如果你无法连接 - 检查配置端口,主机PostgreSQL正在监听。

无论如何,我看到你在评论中发布的那些消息,只能让我知道你没有创建DB甚至运行(或者你的配置错误)。