使用 Cloud SQL Python 連接器建立連線
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
使用 Cloud SQL Python 連接器開啟 PostgreSQL 適用的 Cloud SQL 連線。
深入探索
如需包含這個程式碼範例的詳細說明文件,請參閱下列內容:
程式碼範例
Python
如要向 PostgreSQL 適用的 Cloud SQL 進行驗證,請設定應用程式預設憑證。
詳情請參閱「為本機開發環境設定驗證」。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],[],[],[],null,["# Create a connection using the Cloud SQL Python Connector\n\nOpen a connection to Cloud SQL for PostgreSQL by using the Cloud SQL Python Connector.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Connect from App Engine flexible environment](/sql/docs/postgres/connect-app-engine-flexible)\n- [Connect from App Engine standard environment](/sql/docs/postgres/connect-app-engine-standard)\n- [Connect from Cloud Run](/sql/docs/postgres/connect-run)\n- [Connect from Cloud Run functions](/sql/docs/postgres/connect-functions)\n- [Connect using Cloud SQL Language Connectors](/sql/docs/postgres/connect-connectors)\n\nCode sample\n-----------\n\n### Python\n\n\nTo authenticate to Cloud SQL for PostgreSQL, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n import os\n\n from google.cloud.sql.connector import Connector, IPTypes\n import pg8000\n\n import sqlalchemy\n\n\n def connect_with_connector() -\u003e sqlalchemy.engine.base.Engine:\n \"\"\"\n Initializes a connection pool for a Cloud SQL instance of Postgres.\n\n Uses the Cloud SQL Python Connector package.\n \"\"\"\n # Note: Saving credentials in environment variables is convenient, but not\n # secure - consider a more secure solution such as\n # Cloud Secret Manager (https://cloud.google.com/secret-manager) to help\n # keep secrets safe.\n\n instance_connection_name = os.environ[\n \"INSTANCE_CONNECTION_NAME\"\n ] # e.g. 'project:region:instance'\n db_user = os.environ[\"DB_USER\"] # e.g. 'my-db-user'\n db_pass = os.environ[\"DB_PASS\"] # e.g. 'my-db-password'\n db_name = os.environ[\"DB_NAME\"] # e.g. 'my-database'\n\n ip_type = IPTypes.PRIVATE if os.environ.get(\"PRIVATE_IP\") else IPTypes.PUBLIC\n\n # initialize Cloud SQL Python Connector object\n connector = Connector(refresh_strategy=\"LAZY\")\n\n def getconn() -\u003e pg8000.dbapi.Connection:\n conn: pg8000.dbapi.Connection = connector.connect(\n instance_connection_name,\n \"pg8000\",\n user=db_user,\n password=db_pass,\n db=db_name,\n ip_type=ip_type,\n )\n return conn\n\n # The Cloud SQL Python Connector can be used with SQLAlchemy\n # using the 'creator' argument to 'create_engine'\n pool = sqlalchemy.create_engine(\n \"postgresql+pg8000://\",\n creator=getconn,\n # ...\n )\n return pool\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=cloud_sql_postgres)."]]