Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Python

Creazione di una Web App da zero utilizzando Python Flask e MySQL

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Creating a Web App From Scratch Using Python Flask and MySQL.
Creating a Web App From Scratch Using Python Flask and MySQL: Part 2

Italian (Italiano) translation by Piergiorgio Sansone (you can also view the original English article)

In questa serie, utilizzeremo Python, Flask e MySQL per realizzare una semplice applicazione web da zero.  Sarà una semplice applicazione per una lista dei desideri, dove gli utenti potranno registrarsi, accedere e creare le proprie liste dei desideri.

Questo tutorial presume che abbiate una base di conoscenza del linguaggio di programmazione Python. Utilizzeremo Flask, un web application framework di Python, per realizzare la nostra applicazione con MySQL come back end.

Introduzione a Python Flask

Flask è un framework di Python per realizzare applicazioni web. Dal sito ufficiale,

Falsk è un microframework per Python basato su Werkzeug,  Jinja 2 e buone intenzioni.

Quando pensiamo a Python , de facto il framework che viene alla mente e Django Ma dal punto di vista un principiante del linguaggio Python, incominciare con Flask è più facile, a confronto con Django

Configurazione di Flask

Configurare Flask è abbastanza semplice e veloce. Con il package manager pip, tutto quello che dobbiamo fare è :

Una volta completata l'installazione di Flask, create una cartella e chiamatela FlaskApp. All'interno della cartella FlaskApp create il file chiamato app.py Importate il modulo di flask e create una app utilizzando Flask come mostrato:

Ora definire il percorso di base / e il suo gestore dell richiesta corrispondente:

Successivamente, verificare se il file eseguito è il programma principale ed eseguite l'app:

Salvate le modifiche ed eseguite app.py :

Puntate il browser a http://localhost:5000/ e dovreste ricevere un messaggio di benvenuto.

Creazione di una Home Page

Quando l'applicazione viene eseguita in primo luogo, dobbiamo mostrare una home page con le ultime voci delle liste aggiunte dagli utenti. Quindi cerchiamo di aggiungere alla nostra cartella applicazione nostra home page.

Flask cerca i file del modello all'interno della cartella templates. Quindi all'interno della cartella PythonApp create una cartella chiamata templates dentro templates, create un file chiamato index.html Aprite il file index.html ed aggiungete il seguente codice HTML:

Aprite app.py ed importate render_template, che utilizzeremo per visualizzare i file del modello.

Modificate il metodo principale affinchè restituisca il file template. 

Salvate le modifiche e riavviate il server. Puntate il browser su http://localhost:5000/ e dovreste vedere la schermata sottostante :

Bucket List App home page

Creazione di una pagina di registrazione

Step1: Impostazione del Database

Utilizzeremo MySQL come piattaforma di back end. Così accedete a MySQL da riga di comando, o se preferite potete utilizzare anche un'interfaccia grafica come MySQL Workbench. Innanzitutto, create un database chiamato BucketList. Dalla riga di comando:

Inserite la password richiesta ed una volta entrati, eseguite il seguente comando per creare il database:

Una volta creato il database, create una tabella chiamata tbl_user come mostrato

Per la nostra applicazione Python utilizzeremo una Stored Procedure per interfacciarci con il database MySQL.  Cosi, una volta creata la tabella tbl_user, create una stored procedure chiamata sp_createUser per registrare un utente.

Quando avete creato una stored procedure per inserire un utente nella tabella tbl_user, prima dovete verificare se un utente con lo stesso username già esiste. Se esiste dobbiamo inviare un errore all'utente, altrimenti creeremo l'utente nella tabella utenti. Qui vi mostro come dovrebbe essere la stored procedure sp_createUser :

Step 2 : Creare un'interfaccia di registrazione

Navigate la directory PythonApp/template e create il file HTML chiamato signup.html Aggiungete il seguente codice HTML nel file signup.html

Aggiungete anche il seguente CSS come signup.css nella cartella statica dentro PythonApp.

Nellaapp.py aggiungete un'altro metodo chiamato showSignUp per visualizzare la pagina di registrazione una volta ricevuta la richiesta /showSignUp

Salvate le modifiche e riavviate il server. Cliccate sul bottone Sign Up nella home page e dovreste vedere la pagina di registrazione come mostrato:

Sign Up user page

Step 3: Implementare un metodo di registrazione

Successivamente, avremo bisogno di un metodo lato server per l'interfaccia utente per l'interazione con il database MySQL Andate su PythonApp e aprite app.py . Create un nuovo metodo e chiamatelo signUp ed aggiungete anche il percorso /signUp Qui potete vedere come appare:

Utilizzeremo jQuery AJAX per scrivere i dati di registrazione nel metodo signUp, e specificheremo il metodo nella definizione del percorso.

Per poter leggere i valori assegnati  dobbiamo importare da Flask request

Utilizzando request possiamo leggere i valori assegnati come mostrato sotto:

Una volta letti i valori, dovremmo semplicemente verificarne la validità ed inviare un semplice messaggio:

Importeremo anche  json da Flask, dato che lo stiamo usando nel codice precedente per restituire i dati json.

Step 4: Creare una richiesta di registrazione

Per inviare al metodo Python la richiesta di registrazione utilizzeremo jQuery AJAX . Scaricate  ed mettete  jQuery all'interno della directory PythonApp/static/js  ed aggiungete il link nella pagina di registrazione. Una volta inserito il jQuery , aggiungeremo la richiesta POST jQuery quando l'utente clicca il tasto di registrazione.

Così, fissate l'evento al click del pulsante di registrazione come indicato:

Salvate tutte le modifiche e riavviate il server. Dalla pagina di registrazione, completate in dettaglio i form e cliaccate registrati Verificate il browser e vedrete il messaggio sottostante:

Step 5 : Chiamare la Store Procedure MySQL

Una volta ottenuti nome , indirizzo email e password, possiamo semplicemente chiamare la stored procedure MySQL per creare il nuovo utente.

 Per connetterci con MySQL, utilizzeremo Flask-MySQL che è un'estensione di Flask  Per iniziare con Flask-MySQL, installatelo usando il package manager pip

Importate MySQL dentro app.py:

All'inizio abbiamo definito la nostra app come mostrato:

Oltre questo includete le seguenti configurazioni MySQL:

Innanzitutto, create la connessione MySQL :

Una volta creata la connessione, richiameremo un cursore per interrogare la nostra stored procedure. Cosi, utilizzando il comando conn connessione, create un cursore.

Prima di chiamare l'utente creato con la stored procedure, nascondiamo la nostra password utilizzando un helper fornito da Werkzeug. Importate il modulo in app.py:

Utilizzare il modulo di copertura per creare la password nascosta.

Adesso , richiamiamo la procedura sp_createUser :

Se la procedura viene eseguita correttamente, allora sarà eseguito il commit delle modifiche e verrà restituito un messaggio dell'aggiornamento.

Salvate le modifiche e riavviate il server.   Andate nella pagina di registrazione ed inserite il nome, indirizzo email e la password e cliccate il tasto registra. Creato utente con successo, sarete in grado di vedere un messaggio sul vostro browser.

Riassumendo

In questo tutorial, abbiamo visto come iniziare con la creazione di un'applicazione web utilizzando Python Flask, MySQL e l'estensione Flask-MySQL. Abbiamo creato e progettato le tabelle del database e la stored procedure e implementata la funzionalità di registrazione. Nel prossimo tutorial, ti portiamo questa serie al livello successivo implementando funzionalità di accesso e alcune altre caratteristiche.

Codice sorgente da questo tutorial è disponibile su GitHub.

Fateci sapere i vostri pensieri nei commenti qui sotto!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.