Sette inn data i en PostgreSQL-database

Hvis noen av feltene dine krever en dato eller tid, vil du også importere datetime-modulen, som følger med Python.

For å åpne en forbindelse til en database, trenger psycopg to argumenter: navnet på databasen ('dbname') og navnet på brukeren ('bruker'). Syntaksen for å åpne en forbindelse følger dette formatet:

For databasen vår skal vi bruke databasenavnet 'Fugler' og brukernavnet 'robert'. For tilkoblingsobjektet i programmet, la oss bruke variabelen 'tilkobling'. Så tilkoblingskommandoen vår vil lese slik:

Naturligvis fungerer denne kommandoen bare hvis begge variablene er nøyaktige: det må være en ekte database med navnet 'Birds' som en bruker som heter 'robert' har tilgang til. Hvis ingen av disse betingelsene ikke er fylt, vil Python kaste en feil.

Dernest liker Python å kunne følge med på hvor den sist slapp i lesing og skriving til databasen. I psycopg kalles dette markøren, men vi vil bruke variabelen 'merke' for vårt program. Så kan vi konstruere følgende oppgave:

Mens noen SQL-innsettingsformater tillater forstått eller usatt kolonnestruktur, bruker vi følgende mal for innsatsutsagnene våre:

instagram viewer

Selv om vi kunne gi en uttalelse i dette formatet til psycopg-metoden 'kjør' og slik sett inn data i databasen, blir dette raskt viklet og forvirrende. En bedre måte er å segmentere utsagnet separat fra 'kjør' -kommandoen som følger:

Til slutt, etter å ha sendt dataene til PostgreSQL, må vi forplikte dataene til databasen:

Nå har vi konstruert de grunnleggende delene av vår "innsats" -funksjon. Sett sammen ser delene slik ut:

Du vil legge merke til at vi har tre variabler i utsagnet vårt: tabell, kolonner og verdier. Disse blir dermed parametrene som funksjonen heter:

Vi bør selvfølgelig følge det med en dokumentstreng:

Endelig har vi en funksjon for å sette inn data i en tabell etter eget valg, ved å bruke kolonner og verdier definert etter behov.

For å kalle denne funksjonen, trenger vi ganske enkelt å definere tabellen, kolonnene og verdiene og passere dem som følger: