【问题标题】:Using psycopg2 directly on Google AppEngine直接在 Google AppEngine 上使用 psycopg2
【发布时间】:2018-12-06 06:53:10
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    你好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文件中,将该环境变量直接传递给psycopg2connect语句。这利用了 psycopg2.connect 将 URI 直接传递给 psql 客户端库的能力(这可能不适用于旧 PostgreSQL 版本..)。
    import os
    import psycopg2
    conn = psycopg2.connect(os.environ['PSYCOPG2_POSTGRESQL_URI'])
    
    1. 在本地使用谷歌云代理工具时,如果您的本地服务器不知道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
    

    我希望它也对你有用:)

    【讨论】:

      猜你喜欢
      • 2017-03-04
      • 1970-01-01
      • 2012-06-13
      • 2013-02-27
      • 2020-10-18
      • 2017-02-22
      • 1970-01-01
      • 1970-01-01
      • 2011-05-12
      相关资源
      最近更新 更多