Last active
May 25, 2018 17:11
-
-
Save arnehuang/f24ff62194dc766f1558e129ca48796b to your computer and use it in GitHub Desktop.
psycopg2 postgres python3 connect to database and execute query
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import psycopg2.extras | |
import os | |
def connect_db(autocommit=False): | |
""" Connects to a data base and returns a connection and a cursor. """ | |
conn = psycopg2.connect( | |
database=os.environ.get('DATABASE_DBNAME'), | |
user=os.environ.get('DATABASE_USERNAME'), | |
host=os.environ.get('DATABASE_HOST'), | |
password=os.environ.get('DATABASE_PASSWORD') | |
) | |
conn.autocommit = autocommit | |
cursor = conn.cursor(cursor_factory=psycopg2.extras.DictCursor) | |
return {'conn': conn, 'cursor': cursor} | |
def execute_query(a_query, autocommit=True): | |
""" Executes a query, printing out rows returned if any, returning the results, the connection and the cursor. """ | |
db = connect_db(autocommit=autocommit) | |
conn, cursor = db.get('conn'), db.get('cursor') | |
cursor.execute(a_query) | |
result = cursor.fetchall() | |
if result: | |
print(len(result), "records fetched") | |
return {'result':result, 'conn':conn, 'cursor':cursor} | |
if if __name__ == '__main__': | |
q = """ Select * from table limit 1 """ | |
res = execute_query(q) | |
print(res) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment