直接在Google AppEngine上使用psycopg2

时间:2018-06-27 11:31:20

标签: postgresql google-app-engine psycopg2 google-cloud-sql

使用Google Appengine Flexible + Python时,如何直接使用Psycopg2(不使用SQLAlchemy)访问CloudSQL PostgreSQL数据库?

1 个答案:

答案 0 :(得分:2)

你好myselfhimself

这是一个解决方案:

  1. 在您的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
  1. 在要部署和运行的任何python文件中,将环境变量直接传递到psycopg2的{​​{1}}语句。这利用了connect将URI直接传递到psycopg2.connect客户端库的能力(这可能不适用于较早的PostgreSQL版本。)。
psql
  1. 在本地使用Google云代理工具时,如果您的本地服务器不知道import os import psycopg2 conn = psycopg2.connect(os.environ['PSYCOPG2_POSTGRESQL_URI']) ,请确保先设置URI环境变量:
app.yaml

我希望它也对您有用:)