Un service commémoratif pour les mémos locaux aura lieu à Qiita. Je l'ai écrit l'année dernière, il peut donc y avoir de vieilles informations. ..
psycopg2
est une bibliothèque qui gère PostgreSQL en Python.
Refs.: 1,2
Vous pouvez créer une connexion DB avec conn = psycopg2.connect ({DB_URL (str)})
.
{DB_URL}
est spécifié par postgresql: // {username}: {pass} @ {IP Address or hostname}: {port} / {DB name}
.
Ou conn = psycopg2.connect (host = {adresse IP ou nom d'hôte (str)}, port = {numéro de port (int)}, dbname = {nom de base de données (str)}, utilisateur = {nom d'utilisateur (str)}, Vous pouvez également le spécifier avec password = {pass (str)})
.
Si vous n'avez plus besoin de la connexion, vous pouvez utiliser close ()
, mais vous pouvez utiliser la syntaxe with
, c'est donc une bonne idée de l'utiliser.
import psycopg2
with psycopg2.connect({DB URL}) as conn:
# Processes you want to do
Faites un curseur à lancer.
Vous pouvez créer un curseur avec conn.cursor ()
. Si ce n'est plus nécessaire, close ()
sera fait, mais wi
(abrégé ci-dessous).
Vous pouvez exécuter une requête avec cursor.execute ({query string})
.
Si vous voulez donner un argument, donnez-le sous forme de tap (ou de liste) au deuxième argument, tel que cursor.execute ('SELECT * FROM OSPF_TABLE WHERE FOO =% s', (fooval,))
.
Vous pouvez également donner des arguments sous forme de dictionnaire (type Dictionary). Dans ce cas, donnez une clé à l'espace réservé tel que % (key) s
.
cur.execute("""
INSERT INTO some_table (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)})
import psycopg2
with psycopg2.connect({DB URL}) as conn:
with conn.cursor() as cur:
cur.execute({query})
Recevez le résultat de SELECT
en tant qu'objet Python.
Vous pouvez le recevoir avec cursor.fetchone ()
, cursor.fetchall ()
, cursor.fetchmany (size)
.
cursor.fetchone()
Recevez un seul de la ligne suivante du résultat (ensemble de résultats de la requête). Le résultat sera renvoyé sous forme de taple.
Si vous l'exécutez pendant que curseur
pointe vers la fin, il renverra Aucun
.
cursor.fetchall()
Recevez tous les résultats de la ligne suivante du résultat (ensemble de résultats de la requête). Le résultat sera renvoyé sous forme de liste de tapples.
Si vous l'exécutez lorsque curseur
pointe vers la fin, une liste vide est renvoyée.
cursor.fetchmany(size)
Reçoit la taille de la ligne suivante du résultat (ensemble de résultats de la requête). Le résultat sera renvoyé sous forme de liste de tapples.
Si vous l'exécutez lorsque curseur
pointe vers la fin, une liste vide est renvoyée.
Les transactions sont activées par défaut, donc vos modifications ne prendront effet qu'après validation. Commençons avec connect.commit ()
.
La définition de connect.autocommit = True
désactive la transaction.
C'est connect.rollback ()
.
Si vous créez une connexion avec la syntaxe with
, elle semble être automatiquement annulée si une exception se produit à l'intérieur du bloc with
. C'est pratique [^ 1].
[^ 1]: Il semble que cela satisfasse PEP249
Recommended Posts