PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come configurare psycopg2 con il database PostgreSQL di Google App Engine

È un po' complicato, ma ecco cosa ha funzionato per me. Ti aiuterò a configurare Quickstart App Engine con psycopg2 e dopo ti farai un'idea.

Utilizza Avvio rapido per Python nell'ambiente flessibile di App Engine documentazione per configurare e distribuire la tua app.

Utilizza Connessione da App Engine documentazione per connetterti alla tua app App Engine a Cloud SQL Postgre SQL.

Ho apportato piccole modifiche per farlo funzionare:

In app.yaml aggiungi:

beta_settings:
  cloud_sql_instances: [INSTANCE_CONNECTION_NAME]=tcp:5432
#[INSTANCE_CONNECTION_NAME] = [PROJECT_NAME]:[INSTANCE_ZONE]:[INSTANCE_NAME]
#[INSTANCE_CONNECTION_NAME] can be found at Google Cloud Console Cloud SQL's instance page, under "Instance connection name".

In requirements.txt aggiungi:

psycopg2
psycopg2-binary

In main.py aggiungi:

@app.route('/connect')
def connect():
    try:
        #host='172.17.0.1' is the defult IP for the docker container that it is being created during the deployment of the App Engine
        conn = psycopg2.connect("dbname='postgres' user='postgres' host='172.17.0.1' password='test'")
        return "Connection was established!"
    except:
        return "I am unable to connect to the database"

Usa il gcloud app deploy comando per distribuire la tua app.

Dopo la distribuzione, utilizza gcloud app browse comando per aprire l'app nel browser.

Quando si accede al link https://[PROJECT_ID].appspot.com/connect Dovrebbe rispondere con Connection was established!