È possibile interagire facilmente con il database PostgreSQL con il linguaggio di programmazione Python. Tutto quello che devi fare è installare il modulo Python Psycopg2 con pip e sei a posto.
In questo articolo, ti mostrerò come accedere al database PostgreSQL con Python su Linux. Userò Debian 9 Stretch come il mio sistema operativo e il linguaggio di programmazione Python 3. La versione del database PostgreSQL che userò è PostgreSQL 9.6. Quindi iniziamo.
Tu devi avere
Puoi trovare molti articoli su Linuxhint.com che può aiutarti a impostare PostgreSQL e installare Python+Pip sulla tua distribuzione preferita di Linux. Basta cercarlo.
Creazione di un database e utente PostgreSQL:
In questa sezione, ti mostrerò come creare un database PostgreSQL e l'utente su Linux. Ci connetteremo a questo database da Python più avanti in questo articolo.
Per prima cosa scopri il tuo nome utente di accesso con il seguente comando:
$ whoami
Come puoi vedere, il mio nome utente di accesso è Shovon. Il tuo sarà diverso. Assicurati di prenderne nota in quanto ne avrai bisogno in seguito.
Ora avvia il terminale interattivo PostgreSQL con il seguente comando:
$ sudo -u postgres psqlIl terminale interattivo PostgreSQL dovrebbe iniziare.
Ora crea un database PostgreSQL Pyapp Con il seguente comando SQL:
Postgres =# Crea database pyapp;IL Pyapp Il database dovrebbe essere creato.
Ora devi creare un nuovo utente PostgreSQL. Inoltre, assicurati che il nome utente sia lo stesso del tuo nome utente di accesso.
Crea un nuovo utente PostgreSQL con il seguente comando SQL:
Postgres =# Crea utente your_login_username con password crittografata 'your_password';NOTA: sostituire your_login_username E la tua password Con il tuo nome utente di accesso e password.
L'utente PostgreSQL dovrebbe essere creato.
Ora concedi all'utente appena creato tutti i privilegi al database appena creato Pyapp Con il seguente comando SQL:
Postgres =# concedi tutto sul database pyapp a you_login_username;Tutti i privilegi per il Pyapp Il database è concesso al tuo utente di accesso.
Ora esci dal terminale PostgreSQL con il seguente comando:
Postgres =# \ QOra vediamo se possiamo accedere al nostro database appena creato Pyapp Utilizzando il nostro nome utente di accesso con il seguente comando:
$ psql -dbname = pyapp - -passwordOra digita la password che hai impostato in precedenza per il tuo utente PostgreSQL e premere .
Dovresti essere effettuato.
Installazione di PsycOPG2 con PIP e PIP3:
Ora è il momento di installare Psycopg2 Modulo Python.
Se stai usando Python 3, esegui il comando seguente per l'installazione Psycopg2:
$ PIP3 Installa Psycopg2-BinarySe stai usando Python 2, esegui il comando seguente per l'installazione Psycopg2:
$ pip Installa Psycopg2-BinaryPsycopg2-binario Il modulo PIP deve essere installato.
Creazione della directory del progetto:
Ora crea una directory di progetto, Pyapp con il seguente comando:
$ mkdir pyappE navigare verso la directory con il seguente comando:
$ cd pyappQui è dove creerò tutto lo script Python per accedere al database PostgreSQL.
Connessione al database PostgreSQL:
Innanzitutto, crea un programma Python Collegare.Py Nella directory del tuo progetto.
Ora digita le seguenti righe e salva il file.
Ora esegui lo script Connect.Py con uno dei seguenti comando:
Per Python 3:
$ Python3 Connect.PyPer Python 2:
$ Python Connect.PyCome puoi vedere, sono connesso al database.
Qui sulla riga 1, il Psycopg2 Il modulo viene importato. Nella riga 4, Psycopg2.Collegare() Il metodo viene utilizzato per connettersi al database PostgreSQL. UN Try-Except Il blocco viene utilizzato per catturare errori se nel caso qualcosa vada storto e la connessione al database non riesce.
Esecuzione dei comandi SQL:
In questa sezione, creerò una tabella semplice utenti Usando Python Psycopg2
Digita il seguente codice su un nuovo script Python crea tabella.Py e salvalo.
Ora esegui lo script:
$ python3 create_table.PyCome puoi vedere, il tavolo utenti è creato.
Con Psycopg2, se si desidera eseguire un comando SQL, prima devi creare un cursore.
Nella riga 9, ho creato un cursore con Conn.cursore() metodo e memorizzarlo a cur variabile. Qui Conn è la variabile in cui ho archiviato la connessione del database Psycopg2.Collegare() metodo.
Quindi esegui il comando SQL con il cursore come cur.Exec ("your_sql_goes_here"), che ho fatto sulla riga 12-17 per creare un utenti tavolo.
Se il tuo comando SQL apporta modifiche al database a cui sei connesso, allora devi chiamare Conn.commettere() metodo per rendere permanenti le modifiche come ho fatto nella riga 19.
Inserimento di dati nel database PostgreSQL:
Ora che hai utenti Tabella pronta, inseriamo alcuni dati nella tabella.
Crea un nuovo inserto di file.Py nella directory del tuo progetto e digita i seguenti codici e salva il file.
Ora esegui lo script Python inserire.Py come segue:
$ python3 insert.PyI dati devono essere inseriti.
Come puoi vedere nel terminale PostgreSQL.
Nell'inserto.Py Script, riga 12 Cur.Il metodo Execute () esegue la query SQL per inserire nel utenti tavolo. IL %Ssono sostituiti dalle stringhe dalla tupla, il secondo parametro del cur.eseguire() metodo.
La prima occorrenza di %S è sostituito dal primo elemento della tupla, il secondo %S è sostituito dal secondo elemento della tupla e così via. Puoi anche mescolare i tipi di dati se lo desideri. Per esempio, %D rappresenta intero.
Fetching Data dal database PostgreSQL:
Ora puoi recuperare i dati inseriti nel database PostgreSQL.
Prima crea un nuovo script Python andare a prendere.Py e digitare le seguenti righe di codice. Quindi salva il file.
Ora esegui lo script Fetch.Py con il seguente comando:
$ python3 recupera.PyCome puoi vedere, i dati che ho inserito vengono recuperati. Viene restituito come una tupla, che è un po 'come un array.
Nel andare a prendere.Py Script, tutto è simile come in altri script. Qui, cur.fetchone () Il metodo viene utilizzato per restituire la prima riga della tabella. Se hai molte righe, allora puoi continuare a chiamare cur.fetchone () per iterare attraverso l'elenco. Quando vengono restituite tutte le righe, cur.fetchone () sarà di ritorno Nessuno.
Grazie per aver letto questo articolo.