直接在 Google AppEngine 上使用 psycopg2
Using psycopg2 directly on Google AppEngine
使用Google Appengine Flexible + Python时,如何直接使用Psycopg2(不使用SQLAlchemy)访问CloudSQL PostgreSQL数据库?
你好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
- 在要部署的任何 python 文件和 运行 中,将该环境变量直接传递给
psycopg2
的 connect
语句。这利用 psycopg2.connect
将 URI 直接传递给 psql
客户端库的能力(这可能不适用于旧的 PostgreSQL 版本..)。
import os
import psycopg2
conn = psycopg2.connect(os.environ['PSYCOPG2_POSTGRESQL_URI'])
- 在本地使用 google 云代理工具时,如果您的本地服务器不知道
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
我希望它对你也有用:)
使用Google Appengine Flexible + Python时,如何直接使用Psycopg2(不使用SQLAlchemy)访问CloudSQL PostgreSQL数据库?
你好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
- 在要部署的任何 python 文件和 运行 中,将该环境变量直接传递给
psycopg2
的connect
语句。这利用psycopg2.connect
将 URI 直接传递给psql
客户端库的能力(这可能不适用于旧的 PostgreSQL 版本..)。
import os import psycopg2 conn = psycopg2.connect(os.environ['PSYCOPG2_POSTGRESQL_URI'])
- 在本地使用 google 云代理工具时,如果您的本地服务器不知道
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
我希望它对你也有用:)