skip to navigation
skip to content

Not Logged In

pgsql 1.1

A PostgreSQL database adapter for Python 3

  • Lightweight
  • Written entirely in Python
  • No external dependencies
  • Not thread-safe


$ pip install pgsql


import pgsql

# address defaults to ("localhost", 5432), a string must point to a unix socket
# user defaults to "postgres"
# password defaults to None
# database equals user by default
db = pgsql.Connection(user = "antti", database = "postgres")
print(db("CREATE TABLE people (name TEXT, age INT)"))
print(db("INSERT INTO people (name, age) VALUES ($1, $2)", "Veronica", 18))
print(db("SELECT * FROM people"))

# for convenience, connection objects support the with statement
with pgsql.Connection(user = "antti", database = "postgres") as db:
        # you can use .begin(), .commit(), .rollback() manually, or use the with statement
        with db.transaction():
                with db.prepare("INSERT INTO people (name, age) VALUES ($1, $2)") as ps:
                        for person in ("Wallace", 18), ("Keith", 45), ("Lianne", 44):

        # iterate through and print all the rows represented as tuples
        people = db.prepare("SELECT * FROM people")
        for person in people():

        # sometimes instead of an iterator, you want the rows as a list
        # you may also want to call columns by their name
        people_over = db.prepare("SELECT * FROM people WHERE age > $1").all
        for person in people_over(21):
                print(, "is", person.age - 21, "years over the age of 21")

        # when the expected result is only one row, it's convenient to call .first
        person_named = db.prepare("SELECT * FROM people WHERE name = $1 LIMIT 1").first


[('Veronica', 18)]
('Veronica', 18)
('Wallace', 18)
('Keith', 45)
('Lianne', 44)
Keith is 24 years over the age of 21
Lianne is 23 years over the age of 21
('Veronica', 18)


1.1 (2014-03-26)

  • Make it possible to execute one-time statements by calling the Connection object
File Type Py Version Uploaded on Size
pgsql-1.1.tar.gz (md5) Source 2014-03-26 4KB
  • Downloads (All Versions):
  • 7 downloads in the last day
  • 36 downloads in the last week
  • 123 downloads in the last month