Tietojen lisääminen PostgreSQL-tietokantaan

Jos jokin kenttäsi vaatii päivämäärän tai kellonajan, sinun kannattaa myös tuoda päivämäärämoduuli, joka on vakiona Pythonin kanssa.

Yhteyden avaamiseksi tietokantaan psycopg tarvitsee kaksi argumenttia: tietokannan nimi ('dbname') ja käyttäjän ('user') nimi. Yhteyden avaamisen syntaksi noudattaa tätä muotoa:

Käytämme tietokantaamme tietokannan nimeä 'Birds' ja käyttäjänimeä 'robert'. Käytämme ohjelman sisällä olevaa yhteysobjektia muuttuja 'yhteys'. Joten yhteyskomento lukee seuraavasti:

Luonnollisesti tämä komento toimii vain, jos molemmat muuttujat ovat tarkkoja: Siellä on oltava oikea Birds-niminen tietokanta, johon robert-nimisen käyttäjän on pääsy. Jos jompikumpi näistä ehdoista ei täyty, Python heittää virheen.

Seuraavaksi Python haluaa pystyä seuraamaan, mistä se viimeksi jäi, lukemalla ja kirjoittamalla tietokantaan. Psycopg-ohjelmassa tätä kutsutaan osoittimeksi, mutta käytämme muuttujaa 'merkki' ohjelmallemme. Joten voimme sitten rakentaa seuraavan tehtävän:

Vaikka jotkut SQL-lisäysmuodot sallivat ymmärretyn tai virittämättömän sarakkeen rakenteen, käytämme seuraavaa mallia lisäyslausuntoihimme:

instagram viewer

Vaikka voisimme välittää tässä muodossa olevan lausunnon psycopg-menetelmälle "suorittaa" ja lisätä tietoja tietokantaan, siitä tulee nopeasti mutkikas ja hämmentävä. Parempi tapa on erottaa lauseke erillään 'suorita' -komennosta seuraavasti:

Lopuksi, sen jälkeen kun tiedot on siirretty PostgreSQL: lle, meidän on sitouduttava tietokantaan:

Nyt olemme rakentaneet funktion "insert" perusosat. Yhdessä, osat näyttävät tältä:

Huomaat, että lausunnossamme on kolme muuttujaa: taulukko, sarakkeet ja arvot. Niistä tulee siten parametreja, joilla funktiota kutsutaan:

Meidän pitäisi tietysti seurata tätä doc-merkkijonolla:

Lopuksi, meillä on toiminto tietojen lisäämiseksi valitsemassamme taulukossa käyttämällä sarakkeita ja arvoja, jotka on määritelty tarvittaessa.

Tämän funktion kutsumiseksi meidän on yksinkertaisesti määritettävä taulukko, sarakkeet ja arvot ja välitettävä ne seuraavasti: