Hvis nogle af dine felter kræver en dato eller tid, vil du også importere datetime-modulet, der leveres som standard med Python.
For at åbne en forbindelse til en database har psycopg brug for to argumenter: databasens navn ('dbname') og navnet på brugeren ('bruger'). Syntaks for åbning af en forbindelse følger dette format:
Til vores database skal vi bruge databasenavnet 'Fugle' og brugernavnet 'robert'. For forbindelsesobjektet i programmet, lad os bruge variablen 'forbindelse'. Så vores forbindelseskommando vil læse som følger:
Naturligvis fungerer denne kommando kun, hvis begge variabler er nøjagtige: der skal være en rigtig database med navnet 'Fugle', som en bruger med navnet 'robert' har adgang til. Hvis en af disse betingelser ikke er udfyldt, kaster Python en fejl.
Dernæst kan Python lide at være i stand til at holde styr på, hvor det sidst slap ved læsning og skrivning til databasen. I psycopg kaldes dette markøren, men vi vil bruge variablen 'mark' til vores program. Så vi kan konstruere følgende opgave:
Mens nogle SQL-indsættelsesformater tillader forstået eller ikke-angivet kolonnestruktur, bruger vi følgende skabelon til vores indsætningsangivelser:
Selvom vi kunne videregive en erklæring i dette format til psycopg-metoden 'udføre' og så indsætte data i databasen, bliver dette hurtigt indviklet og forvirrende. En bedre måde er at opdele udsagnet separat fra kommandoen 'udfør' som følger:
Endelig, efter at have videregivet dataene til PostgreSQL, skal vi overføre dataene til databasen:
Nu har vi konstrueret de grundlæggende dele af vores funktion 'indsæt'. Samlet ser delene sådan ud:
Du vil bemærke, at vi har tre variabler i vores udsagn: tabel, kolonner og værdier. Disse bliver således de parametre, som funktionen kaldes til:
Vi bør selvfølgelig følge det med en doc-streng:
Endelig har vi en funktion til at indsætte data i en tabel efter vores valg ved hjælp af kolonner og værdier defineret efter behov.
For at kalde denne funktion skal vi blot definere tabel, kolonner og værdier og videregive dem som følger: