Python - Read & Write tables from PostgreSQL with Security

Gist Page : example-python-read-and-write-from-postgresql

Common part

Requirements

Install sqlalchemy default Python-PostgreSQL driver : psycopg2

It's possible to use another driver if needed

pip3 install psycopg2

Libraries dependency

import pandas as pd
from sqlalchemy import create_engine

PostgreSQL Connection

SQLAlchemy PostgreSQL URI with default driver looks like this : 'postgresql://user:password@host_ip:port/database'

Connection

# ====== Connection ======
# Connecting to PostgreSQL by providing a sqlachemy engine
engine = create_engine('postgresql://'+os.environ['POSTGRESQL_USER']+':'+os.environ['POSTGRESQL_PASSWORD']+'@'+os.environ['POSTGRESQL_HOST_IP']+':'+os.environ['POSTGRESQL_PORT']+'/'+os.environ['POSTGRESQL_DATABASE'],echo=False)

How to create a table in PostgreSQL with Python ?

Code example

# ====== Writing table ====== #
# Creating a simple pandas DataFrame with two columns
liste_hello = ['hello1','hello2']
liste_world = ['world1','world2']
df = pd.DataFrame(data = {'hello' : liste_hello, 'world': liste_world})

# Writing Dataframe to PostgreSQL and replacing table if it already exists
df.to_sql(name='helloworld', con=engine, if_exists = 'replace', index=False)

How to query a table from PostgreSQL with Python ?

Code example

# ====== Reading table ======
# Reading PostgreSQL table into a pandas DataFrame
data = pd.read_sql('SELECT * FROM helloworld', engine)