Skip to main content

A simple package for interacting with a Postgres Database.

Project description

Postgreasy

This package contains some simple helper functions to interact with a postgress database. Makes use of a .env file to make the connection with the database. It's basically a simple wrapper around the psycopg2 library.

Fill in the following 4 parameters in the .env file in the root folder like so:

postgres_host = ...
postgres_username = ...
postgres_database = ...
postgres_password = ...

Methods

Create a database

import postgreasy

postgreasy.create_database(database_name='example_db')

Create a schema

import postgreasy

postgreasy.create_schema(database_name='example_db')

Create a table

import postgreasy
from psycopg2 import sql

postgreasy.create_table('example_schema', 'example_table', sql.SQL('id serial, temperature int, name text'))

Execute a query

import postgreasy
from psycopg2 import sql

postgreasy.execute(sql.SQL('...'))

Fetch with a query (Execute a query and get the results)

import postgreasy
from psycopg2 import sql

x = postgreasy.execute(sql.SQL('select 1'))

Insert a Pandas DataFrame

import postgreasy
import pandas as pd

df = pd.DataFrame({'x': [1, 2, 3], 'y': [5, 28, 8]})
postgreasy.insert_df(df, 'example_schema', 'example_table')

Connection

Normally when you execute one of the postgreasy methods, a connection is automatically established and closed. For example:

import postgreasy
from psycopg2 import sql

postgreasy.execute_query_on_db(sql.SQL('select 1'))

To create a connection without the .env or if you want to execute multiple queries and not create a connection for each separate query there are 2 ways to go about it. Either use the get_connection() method or use the with ... structure with a PostgresConnection() object. The latter is the preferred option as it requires less steps that can be forgotten.

get_connection()

This way you create a connection object which you supply to the other postgreasy methods. Here you have to remember to manually close the connection with the .close() function.

Example:

import postgreasy
from psycopg2 import sql

conn = postgreasy.get_connection(host='...', database='...', username='...', password='...')
postgreasy.execute_query_on_db(sql.SQL('select 1'), conn )
conn.close()

PostgresConnection()

In this case the connection is automatically opened, you also don't have to supply the connection paramter to the postgreasy methods.

Example:

import postgreasy
from psycopg2 import sql

with PostgresConnection(host='...', database='...', username='...', password='...') as conn:
    conn.execute_query_on_db(sql.SQL('select 1') )

Contact

Go to the GitHub page if you hav any issues.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

postgreasy-1.1.0.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

postgreasy-1.1.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file postgreasy-1.1.0.tar.gz.

File metadata

  • Download URL: postgreasy-1.1.0.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.10

File hashes

Hashes for postgreasy-1.1.0.tar.gz
Algorithm Hash digest
SHA256 28c2185c0af3fc5e8017c6bbf0c0d1bad9748fe312ad122bb1d4827bcb1b4edf
MD5 c9758227bd7442f4f6d2bba3f8cae182
BLAKE2b-256 9cea59a0084c1b569c5f4c40770f755f54b33677f98d19facd7233109ebc95ae

See more details on using hashes here.

File details

Details for the file postgreasy-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: postgreasy-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.10

File hashes

Hashes for postgreasy-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c980c0261330df3529b2567c31470210f464b3c1c7ab2713ba64769db3f6a385
MD5 07840eadfad695578b3be2e69a957d88
BLAKE2b-256 df36528e6239df2e431f26546347bf05f2e969351e4958de87e9da9dd77c2fd7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page