【发布时间】:2018-12-06 06:53:10
【问题描述】:
在使用 Google Appengine Flexible + Python 时,如何直接使用 Psycopg2(不使用 SQLAlchemy)访问 CloudSQL PostgreSQL 数据库?
【问题讨论】:
标签: postgresql google-app-engine psycopg2 google-cloud-sql
在使用 Google Appengine Flexible + Python 时,如何直接使用 Psycopg2(不使用 SQLAlchemy)访问 CloudSQL PostgreSQL 数据库?
【问题讨论】:
标签: postgresql google-app-engine psycopg2 google-cloud-sql
你好myselfhimself,
这里有一个解决方案:
app.yaml 中,添加一个环境变量,模仿Google Appengine Flexible Python CloudSQL documentation's SQLAlchemy 的URI,但没有psycopg2+ 前缀:env_variables: PSYCOPG2_POSTGRESQL_URI: postgresql://user:password@/databasename?host=/cloudsql/project-name:region:database-instance-name
psycopg2的connect语句。这利用了 psycopg2.connect 将 URI 直接传递给 psql 客户端库的能力(这可能不适用于旧 PostgreSQL 版本..)。import os import psycopg2 conn = psycopg2.connect(os.environ['PSYCOPG2_POSTGRESQL_URI'])
app.yaml,请确保先设置URI环境变量:export PSYCOPG2_POSTGRESQL_URI="postgresql://user:password@/databasename?host=/cloudsql/project-name:region:database-instance-name" ./cloud_sql_proxy -instances=project-name:region:database-instance-name=tcp:5432 #somewhat later: python myserver.py
我希望它也对你有用:)
【讨论】: