Form inserimento dati e registrazione in MySQL con Python

In questo articolo si argomenterà un modulo pratico con il linguaggio Python, ossia si spiegherà come scrivere un piccolo form html che registra delle informazioni all'interno di un database MySQL.

il
Sviluppatore e Trainer, Collaboratore di IProgrammatori

In questo terzo articolo dal titolo Form inserimento dati con Python, svilupperemo in modo pratico l'acquisizione di informazioni e le memorizzeremo all'interno di una base dati in MySQL. Il form di inserimento verrà interamente sviluppato in HTML e l'action del form sarà in sostanza uno script con estensione .py che conterrà tutta la logica di memorizzazione delle informazioni inviate nel database.

A questo punto ci poniamo un set di domande alle quali daremo delle risposte ben sintetiche:

  • Quale ambiente di sviluppo verrà utilizzato? - Visual Studio Code
  • Servirà la configurazione di un web server Internet Information Services? La risposta è affermativa in quanto l'esecuzione del form html da svluppare e l'invio di questi dati necessita alla fine di eseguire uno script CGI in Python.
  • Servirà anche l'installazione e corretta configurazione di MySQL? Anche per questa domanda la risposta è affermativa in quanto per utilizzare in Python un provider dati di MySQL per Python richiede necessariamente di MySQL Server Community installato

Sulla base di queste risposte fondamentali iniziamo a progettare la base dati che conterrà essenzialmente tre tabelle:

  • la prima tabella dal nome Tipologie di contatti che memorizzerà tutte le tipologie di contatti alle quali verranno associati tutti i contatti memorizzati del tipo Fax, email, numero di telefono ufficio , numero di telefono personali, numeri di telefono cellulari posseduti
  • la seconda tabella dal nome Contatti che memorizzerà tutte le informazioni di un profilo contatti del tipo Cognome, Nome, indirizzo, Città, Cap, Via, Civico
  • la terza tabella dal nome Dettagli Contatto conterrà le chiavi IdContatto IdTipoContatto e l'informazione di descrizione del contatto che memorizzerà il numero del fax oppure la mail oppure il numero di telefono o quelli delle sim possedute dal cotnatto registrato.

Gli scripts.sql,che rispettivamente creano queste entità sono:

comandi mysql

Create table con MySQL da riga di comando

In questo script rappresentato graficamente abbiamo progettato la struttura della tabella dove memorizzeremo tutte le tipologie di contatti possibili.

Create table con MySql - riga di comando

Riga di comando di creazione tabella in MySQL

Creati con gli scripts SQL le entità coinvolte per l'applicazione da implementare si passa a configurare l'esecuzione degli script CGI per Python sul Web server Microsoft IIS (Internet Information Services).

In questo ambito potete consultare un articolo sempre da me scritto che vi spiega passo passo tale configurazione. Successivamente a tale configurazione, si dovrà poi procedere a:

  1. configurare l'ambiente virtualizzato Python per la cartella pyformins
  2. una volta configurato tale ambiente si dovrà digitare da console il comando python -m venv mysql-connector-python

Comandi Python

Comandi Python

Una volta configurato l'ambiente virtualizzato Python si va nella cartella Scripts e si invoca da console con privilegi di amministratore il comando batch Activate in modo da assicurarsi che l'installazione delle successive librerie avviene sempre in tale ambiente. Fatto ciò si passa ad eseguire il comando pip install mysql-connector-python e si vanno a monitorare sempre in quella finestra gli step di installazione di questo connettore.

Sempre nella cartella formins c'è uno script di prova helloworld.py progettiamo lo script al suo interno che ci permette di accedere al database iprogr_contacts del nostro server locale di Mysql ricordandosi anche della password impostata durante la sua configurazione che esula da questo articolo.

Lo scripts modello che ci permetterà di formalizzare il codice html al fine di fare un parser del form di registrazione è il seguente:

Script Python

Volessimo prendere come esempio quello di registrare delle informazioni anagrafiche all'interno della tabella contatti, lo script html completo da scrivere con codice python è il seguente:

Script Python

Il rendering nel browser: ipotizzando che avete configurato con IIS una cartella sul vostro hard-disk dal nome pyformins e il nome dello script è formcontatti.py, avremmo:

Script Python

Per concludere questo breve articolo su questo tema dobbiamo verificare che i dati che compiano in queste due rispettive immagini siano uguali:

Forma contatti

Dati aggiornati

Coincidendo le informazioni immesse nel form e quelle salvate per mezzo dell'esecuzione dello script CGI registra.py dove abbiamo utilizzato la libreria MySQL per Python, seguiranno prossimamente altri articoli tematici per lo storage dei dati in Python e la gestione degli altri aspetti della gestione contatti oltre l'inserimento del contatto. Arrivederci al prossimo articolo.