The following tutorial creates a basic Python application that connects to a YugabyteDB cluster using the aiopg database adapter, performs a few basic database operations — creating a table, inserting data, and running a SQL query — and prints the results to the screen.

Prerequisites

Before you start using Aiopg, ensure you have the following:

  • YugabyteDB up and running. If you are new to YugabyteDB, follow the steps in Quick start to have YugabyteDB up and running in minutes.

  • Python 3, or later, is installed.

  • aiopg package is installed. Install the package using the following command:

    pip3 install aiopg

    For details about using this database adapter, see aiopg documentation.

Create the sample Python application

Create a file yb-sql-helloworld.py and copy the following code:

import asyncio import aiopg dsn = 'dbname=yugabyte user=yugabyte password=yugabyte host=127.0.0.1 port=5433' async def go(): async with aiopg.create_pool(dsn) as pool: async with pool.acquire() as conn: # Open a cursor to perform database operations. async with conn.cursor() as cur: await cur.execute(f""" DROP TABLE IF EXISTS employee; CREATE TABLE employee (id int PRIMARY KEY, name varchar, age int, language varchar); """) print("Created table employee") # Insert a row. await cur.execute("INSERT INTO employee (id, name, age, language) VALUES (%s, %s, %s, %s)", (1, 'John', 35, 'Python')) print("Inserted (id, name, age, language) = (1, 'John', 35, 'Python')") # Query the row. await cur.execute("SELECT name, age, language FROM employee WHERE id = 1") async for row in cur: print("Query returned: %s, %s, %s" % (row[0], row[1], row[2])) loop = asyncio.get_event_loop() loop.run_until_complete(go())

Run the application

To use the application, run the following Python script:

python yb-sql-helloworld.py

You should see the following output:

Created table employee
Inserted (id, name, age, language) = (1, 'John', 35, 'Python')
Query returned: John, 35, Python