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.1.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.1-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: postgreasy-1.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 a9530cd78d5fe75680ce2a4d65abf127ec251b0de34df742afc4363af52763e7
MD5 88ae6a72e71239e812bedf4ef9b1c743
BLAKE2b-256 144e09a1ba4dd8e71fa14230bdbf5f5a07262e2c58d5d78a054f84ea9eab8809

See more details on using hashes here.

File details

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

File metadata

  • Download URL: postgreasy-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.8 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 87da2c2b368628fc8771e9c2c566fe7ce3ebf1cd471b808f846cff0125e7d6bf
MD5 dd2fed551e846f4480b79d4f43e5098a
BLAKE2b-256 9714405baab4907b221d72d7d3a7f0967db5152d74f56748a0dba1a54ecda2ba

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