SlideShare une entreprise Scribd logo
1  sur  28
CONNECT TO POSTGRESQL
With python script
 psycopg is a PostgreSQL database adapter for
the Python_ programming language. This is
version 2, a complete rewrite of the original
code to provide new-style classes for
connection and cursor objects and other sweet
candies.
 Homepage:
http://initd.org/projects/psycopg2
PyGreSQL – PostgreSQL module for Python
PyGreSQL is an open-source Python module
that interfaces to a PostgreSQL database. It
embeds the PostgreSQL query library to allow
easy use of the powerful PostgreSQL features
from a Python script.
Python version 2.5 or 2.6 or 2.7
PostGreSQL 9.1 or higher
Linux
Look for a package such as python-psycopg2
sudo apt-get install python-psycopg2 - to install
the package with all its dependencies.
Windows
 http://www.stickpeople.com/projects/python/win-psycopg/
 http://initd.org/psycopg/
 Binary(...) Binary(buffer) -> new binary object
Build an object capable to hold a binary string value.
 Date(...) - Date(year, month, day) -> new date
Build an object holding a date value.
 Time(...) - Time(hour, minutes, seconds, tzinfo=None) –> new time
Build an object holding a time value.
 Timestamp(...) -
Timestamp(year, month, day, hour, minutes, seconds, tzinfo=None) -
> new timestamp
Build an object holding a timestamp value
 Create a new database connection and returns a new connection instance.

connect(dsn=None, database=None, user=None, password=None, host=No
ne, port=None, connection_factory=None, cursor_factory=None, async=Fal
se).
 Parameters:
 Using the *connection_factory* parameter a different class or connections
factory can be specified. It should be a callable object taking a dsn
argument.
 Using the *cursor_factory* parameter, a new default cursor factory will be
used by cursor().
 Using *async*=True an asynchronous connection will be created.
 It allows to:
 create new cursors using the cursor() method to execute
database commands and queries,
 commit() - The changes are committed to the database.
 rollback() In case of an error, we roll back any possible
changes to our database table.
 The class cursor allows interaction with the database:
 send commands to the database using methods such as execute() and
executemany(),
 retrieve data from the database by iteration or using methods such as
fetchone(), fetchmany(), fetchall().
 cur.description – to get metadata
 copy-to – to copy db tables to a file
 copy-from – to copy files to a db
 scrollable()
 mogrify()
import psycopg2
Connect to an existing database
 conn=psycopg2.connect("dbname=test user=postgres")
- as a libpq connection string
 conn=psycopg2.connect(database=“test” user=“postgres")
- as a set of keyword arguments
Open a cursor to perform database operations
cur = conn.cursor()
 Psycopg cursor usually fetches all the record from database
during a query, usually which is a large dataset to be handled
in the client side, hence to do controlled transfer of data to the
client,we use server side cursors.
 Psycopg wraps the database server side cursor in named
cursors. A named cursor is created using the cursor() method
specifying the name parameter.
 To move in the dataset we use scroll() method and scrollable()
method to move backward as well
Make the changes to the database persistent
conn.commit()
Close communication with the database
cur.close()
conn.close()
connect_test.py
check_version.py
Form.py
CRUD
 cur.execute("DROP TABLE IF EXISTS tablename")
 cur.execute("CREATE TABLE tablename (id serial
PRIMARY KEY, num integer, data varchar)“)
 cur.executemany() ???????
Create and drop table
cur.execute("SELECT * FROM tablename")
cur.execute("INSERT INTO tablename
(num, data) VALUES (%s, %s)", ...
(100, “apple"))
insert
insertmany
Obtain data as Python objects
cur.fetchone(),cur.fetchall(),cur.fetchmany(5)
fetchone
fetchall
 Always be a %s, even if a different placeholder (such as a %d for
integers or %f for floats) may look more appropriate:
cur.execute("INSERT INTO tablename VALUES (%d)", (42,)) # WRONG
cur.execute("INSERT INTO tablenameVALUES (%s)", (42,)) # correct
 Named arguments are supported too using %(name)s placeholders.
cur.execute( """INSERT INTO tablename (an_int, a_date,
another_date, a_string) VALUES (%(int)s, %(date)s, %(date)s,
%(str)s);""", {'int': 10, 'str': "O'Reilly", 'date': datetime.date(2005,
11, 18)})
 The Python string operator % is not used: the execute() method accepts a
tuple or dictionary of values as second parameter.
 For positional variables binding, the second argument must always be a
sequence, even if it contains a single variable:
 cur.execute("INSERT INTO foo VALUES (%s)", "bar") # WRONG
 cur.execute("INSERT INTO foo VALUES (%s)", ("bar")) # WRONG
 cur.execute("INSERT INTO foo VALUES (%s)", ("bar",)) # correct
 cur.execute("INSERT INTO foo VALUES (%s)", ["bar"]) # correct
Python PostgreSQL
None NULL
Bool Bool
Float Real,double
Int,long Smallint,integer,bigint
Decimal Numeric
Str Varchar
Date Date
Datetime Timestamp
List array
Many standard Python types are adapted into SQL and returned as Python objects
when a query is executed.
Psycopg casts Python variables to SQL literals by type.
cur.execute("UPDATE tablename SET
price=50000 WHERE id1")
update
delete
cur.execute("UPDATE tablename SET
price=%s WHERE id=%s", (60000, 1))
cur.execute("SELECT * FROM tablename
WHERE id=%(id)s", {'id': 4 } )
Python Filescopy_from_db.py
Python Filescopy_to_db.py
Matadata.py
Information on db
autocommit
Writing image to db
Reading image from db
Python Filesdictionary_cursor.py
Psycopg2 - Connect to PostgreSQL using Python Script

Contenu connexe

Tendances

Tendances (20)

PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
5. stored procedure and functions
5. stored procedure and functions5. stored procedure and functions
5. stored procedure and functions
 
MySQL Functions
MySQL FunctionsMySQL Functions
MySQL Functions
 
Wildcard In database
Wildcard In databaseWildcard In database
Wildcard In database
 
Database Triggers
Database TriggersDatabase Triggers
Database Triggers
 
MongoDB - Aggregation Pipeline
MongoDB - Aggregation PipelineMongoDB - Aggregation Pipeline
MongoDB - Aggregation Pipeline
 
Introduction to triggers
Introduction to triggersIntroduction to triggers
Introduction to triggers
 
MySQL
MySQLMySQL
MySQL
 
MySql:Introduction
MySql:IntroductionMySql:Introduction
MySql:Introduction
 
Mysql Crud, Php Mysql, php, sql
Mysql Crud, Php Mysql, php, sqlMysql Crud, Php Mysql, php, sql
Mysql Crud, Php Mysql, php, sql
 
Python - Numpy/Pandas/Matplot Machine Learning Libraries
Python - Numpy/Pandas/Matplot Machine Learning LibrariesPython - Numpy/Pandas/Matplot Machine Learning Libraries
Python - Numpy/Pandas/Matplot Machine Learning Libraries
 
SQL Functions
SQL FunctionsSQL Functions
SQL Functions
 
Introduction to sql
Introduction to sqlIntroduction to sql
Introduction to sql
 
Jquery
JqueryJquery
Jquery
 
DML Commands
DML CommandsDML Commands
DML Commands
 
Chapter 3 stored procedures
Chapter 3 stored proceduresChapter 3 stored procedures
Chapter 3 stored procedures
 
Introduction to Python programming
Introduction to Python programmingIntroduction to Python programming
Introduction to Python programming
 
Datastructures in python
Datastructures in pythonDatastructures in python
Datastructures in python
 
Python Advanced – Building on the foundation
Python Advanced – Building on the foundationPython Advanced – Building on the foundation
Python Advanced – Building on the foundation
 
Chapter 4 Structured Query Language
Chapter 4 Structured Query LanguageChapter 4 Structured Query Language
Chapter 4 Structured Query Language
 

Similaire à Psycopg2 - Connect to PostgreSQL using Python Script

Store and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and CassandraStore and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and Cassandra
Deependra Ariyadewa
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
Dmitry Buzdin
 
Workshop presentation hands on r programming
Workshop presentation hands on r programmingWorkshop presentation hands on r programming
Workshop presentation hands on r programming
Nimrita Koul
 
Hadoop_Pennonsoft
Hadoop_PennonsoftHadoop_Pennonsoft
Hadoop_Pennonsoft
PennonSoft
 

Similaire à Psycopg2 - Connect to PostgreSQL using Python Script (20)

Hadoop Integration in Cassandra
Hadoop Integration in CassandraHadoop Integration in Cassandra
Hadoop Integration in Cassandra
 
Cascading Through Hadoop for the Boulder JUG
Cascading Through Hadoop for the Boulder JUGCascading Through Hadoop for the Boulder JUG
Cascading Through Hadoop for the Boulder JUG
 
Psycopg2 postgres python DDL Operaytions (select , Insert , update, create ta...
Psycopg2 postgres python DDL Operaytions (select , Insert , update, create ta...Psycopg2 postgres python DDL Operaytions (select , Insert , update, create ta...
Psycopg2 postgres python DDL Operaytions (select , Insert , update, create ta...
 
Spark_Documentation_Template1
Spark_Documentation_Template1Spark_Documentation_Template1
Spark_Documentation_Template1
 
Introduction to Scalding and Monoids
Introduction to Scalding and MonoidsIntroduction to Scalding and Monoids
Introduction to Scalding and Monoids
 
Phil Bartie QGIS PLPython
Phil Bartie QGIS PLPythonPhil Bartie QGIS PLPython
Phil Bartie QGIS PLPython
 
Python postgre sql a wonderful wedding
Python postgre sql   a wonderful weddingPython postgre sql   a wonderful wedding
Python postgre sql a wonderful wedding
 
Introduction to source{d} Engine and source{d} Lookout
Introduction to source{d} Engine and source{d} Lookout Introduction to source{d} Engine and source{d} Lookout
Introduction to source{d} Engine and source{d} Lookout
 
Modern technologies in data science
Modern technologies in data science Modern technologies in data science
Modern technologies in data science
 
Connecting and using PostgreSQL database with psycopg2 [Python 2.7]
Connecting and using PostgreSQL database with psycopg2 [Python 2.7]Connecting and using PostgreSQL database with psycopg2 [Python 2.7]
Connecting and using PostgreSQL database with psycopg2 [Python 2.7]
 
What is new in Java 8
What is new in Java 8What is new in Java 8
What is new in Java 8
 
Advance Map reduce - Apache hadoop Bigdata training by Design Pathshala
Advance Map reduce - Apache hadoop Bigdata training by Design PathshalaAdvance Map reduce - Apache hadoop Bigdata training by Design Pathshala
Advance Map reduce - Apache hadoop Bigdata training by Design Pathshala
 
Python database connection
Python database connectionPython database connection
Python database connection
 
Store and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and CassandraStore and Process Big Data with Hadoop and Cassandra
Store and Process Big Data with Hadoop and Cassandra
 
Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
 
Twitter Author Prediction from Tweets using Bayesian Network
Twitter Author Prediction from Tweets using Bayesian NetworkTwitter Author Prediction from Tweets using Bayesian Network
Twitter Author Prediction from Tweets using Bayesian Network
 
Wprowadzenie do technologii Big Data / Intro to Big Data Ecosystem
Wprowadzenie do technologii Big Data / Intro to Big Data EcosystemWprowadzenie do technologii Big Data / Intro to Big Data Ecosystem
Wprowadzenie do technologii Big Data / Intro to Big Data Ecosystem
 
Workshop presentation hands on r programming
Workshop presentation hands on r programmingWorkshop presentation hands on r programming
Workshop presentation hands on r programming
 
Hadoop_Pennonsoft
Hadoop_PennonsoftHadoop_Pennonsoft
Hadoop_Pennonsoft
 
Database connectivity in python
Database connectivity in pythonDatabase connectivity in python
Database connectivity in python
 

Dernier

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ssuser89054b
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 

Dernier (20)

FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Intro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdfIntro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdf
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdf
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Wakad Call Me 7737669865 Budget Friendly No Advance Booking
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdf
 

Psycopg2 - Connect to PostgreSQL using Python Script

  • 2.  psycopg is a PostgreSQL database adapter for the Python_ programming language. This is version 2, a complete rewrite of the original code to provide new-style classes for connection and cursor objects and other sweet candies.  Homepage: http://initd.org/projects/psycopg2
  • 3. PyGreSQL – PostgreSQL module for Python PyGreSQL is an open-source Python module that interfaces to a PostgreSQL database. It embeds the PostgreSQL query library to allow easy use of the powerful PostgreSQL features from a Python script.
  • 4. Python version 2.5 or 2.6 or 2.7 PostGreSQL 9.1 or higher
  • 5. Linux Look for a package such as python-psycopg2 sudo apt-get install python-psycopg2 - to install the package with all its dependencies. Windows  http://www.stickpeople.com/projects/python/win-psycopg/  http://initd.org/psycopg/
  • 6.  Binary(...) Binary(buffer) -> new binary object Build an object capable to hold a binary string value.  Date(...) - Date(year, month, day) -> new date Build an object holding a date value.  Time(...) - Time(hour, minutes, seconds, tzinfo=None) –> new time Build an object holding a time value.  Timestamp(...) - Timestamp(year, month, day, hour, minutes, seconds, tzinfo=None) - > new timestamp Build an object holding a timestamp value
  • 7.  Create a new database connection and returns a new connection instance.  connect(dsn=None, database=None, user=None, password=None, host=No ne, port=None, connection_factory=None, cursor_factory=None, async=Fal se).  Parameters:  Using the *connection_factory* parameter a different class or connections factory can be specified. It should be a callable object taking a dsn argument.  Using the *cursor_factory* parameter, a new default cursor factory will be used by cursor().  Using *async*=True an asynchronous connection will be created.
  • 8.  It allows to:  create new cursors using the cursor() method to execute database commands and queries,  commit() - The changes are committed to the database.  rollback() In case of an error, we roll back any possible changes to our database table.
  • 9.  The class cursor allows interaction with the database:  send commands to the database using methods such as execute() and executemany(),  retrieve data from the database by iteration or using methods such as fetchone(), fetchmany(), fetchall().  cur.description – to get metadata  copy-to – to copy db tables to a file  copy-from – to copy files to a db  scrollable()  mogrify()
  • 10. import psycopg2 Connect to an existing database  conn=psycopg2.connect("dbname=test user=postgres") - as a libpq connection string  conn=psycopg2.connect(database=“test” user=“postgres") - as a set of keyword arguments Open a cursor to perform database operations cur = conn.cursor()
  • 11.  Psycopg cursor usually fetches all the record from database during a query, usually which is a large dataset to be handled in the client side, hence to do controlled transfer of data to the client,we use server side cursors.  Psycopg wraps the database server side cursor in named cursors. A named cursor is created using the cursor() method specifying the name parameter.  To move in the dataset we use scroll() method and scrollable() method to move backward as well
  • 12. Make the changes to the database persistent conn.commit() Close communication with the database cur.close() conn.close()
  • 14. CRUD
  • 15.  cur.execute("DROP TABLE IF EXISTS tablename")  cur.execute("CREATE TABLE tablename (id serial PRIMARY KEY, num integer, data varchar)“)  cur.executemany() ??????? Create and drop table
  • 16. cur.execute("SELECT * FROM tablename") cur.execute("INSERT INTO tablename (num, data) VALUES (%s, %s)", ... (100, “apple")) insert insertmany
  • 17. Obtain data as Python objects cur.fetchone(),cur.fetchall(),cur.fetchmany(5) fetchone fetchall
  • 18.  Always be a %s, even if a different placeholder (such as a %d for integers or %f for floats) may look more appropriate: cur.execute("INSERT INTO tablename VALUES (%d)", (42,)) # WRONG cur.execute("INSERT INTO tablenameVALUES (%s)", (42,)) # correct  Named arguments are supported too using %(name)s placeholders. cur.execute( """INSERT INTO tablename (an_int, a_date, another_date, a_string) VALUES (%(int)s, %(date)s, %(date)s, %(str)s);""", {'int': 10, 'str': "O'Reilly", 'date': datetime.date(2005, 11, 18)})
  • 19.  The Python string operator % is not used: the execute() method accepts a tuple or dictionary of values as second parameter.  For positional variables binding, the second argument must always be a sequence, even if it contains a single variable:  cur.execute("INSERT INTO foo VALUES (%s)", "bar") # WRONG  cur.execute("INSERT INTO foo VALUES (%s)", ("bar")) # WRONG  cur.execute("INSERT INTO foo VALUES (%s)", ("bar",)) # correct  cur.execute("INSERT INTO foo VALUES (%s)", ["bar"]) # correct
  • 20. Python PostgreSQL None NULL Bool Bool Float Real,double Int,long Smallint,integer,bigint Decimal Numeric Str Varchar Date Date Datetime Timestamp List array Many standard Python types are adapted into SQL and returned as Python objects when a query is executed. Psycopg casts Python variables to SQL literals by type.
  • 22. cur.execute("UPDATE tablename SET price=%s WHERE id=%s", (60000, 1)) cur.execute("SELECT * FROM tablename WHERE id=%(id)s", {'id': 4 } )
  • 26. Writing image to db Reading image from db