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 : Parte 2

by
Difficulty:IntermediateLength:MediumLanguages:
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
Creating a Web App From Scratch Using Python Flask and MySQL: Part 3

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

Nell'articolo precedente di questa serie, abbiamo visto come iniziare  con Python Flask e MySQL , e realizzato il modulo di registrazione della nostra applicazione. In questo tutorial, porteremo l'argomento al  livello successivo implementando le funzionalità di accesso e di uscita della nostra applicazione.

Iniziamo 

Innanzitutto copiate il codice sorgente del tutorial precedente da GitHub.

Una volta copiato il codice, navigate la directory PythonFlaskMySQLApp---Parte-1 e riavviate il server 

Puntate il browser su http://localhost:5002 e dovreste vedere l'applicazione girare.

Creazione dell'interfaccia di Sign-In

Navigate la directory PythonFlaskMySQLApp---Part-1/templates e create un nuovo file chiamato signin.html. Aprite il file signin.html ed aggiungete il codice HTML seguente:

Aprite il file app.py ed aggiungete il nuovo percorso all'interfaccia sign-in. 

Poi aprite index.html e signup.html, aggiungete il codice href del link a sign-in in entrambe le pagine come /showSingin. Salvare tutte le modifiche e riavviare il server.

Puntate il browser su http://localhost:5002 e cliccate sul link Sign In , e dovreste essere in grado di vedere la pagina di registrazione.

Sign In page

Implementazione di Sign-In

Adesso, dobbiamo creare la funzione per la validazione dell'accesso utente. Cliccando Sing In inviamo l'indirizzo email e la password inseriti alla funzione di valutazione utente.

Creazione di una Stored Procedure

Per convalidare un utente, abbiamo bisogno di una procedura di MySQL memorizzati. Quindi create una stored procedure MySQL come mostrato:

Otterremo i dettagli dell'utente,  in base allo username,  dal database MySQL utilizzando sp_validateLogin. Una volta ottenuta la password nascosta la confronteremo con la password inserita dall'utente.

Convalidare il metodo utente

Create un metodo per convalidare l'utente che chiameremo quando l'utente invia il form:

Come si vede nel codice precedente, abbiamo letto l'indirizzo email registrato e la password in _username e _password. Ora chiameremo la procedura di sp_validateLogin con il parametro _username. Quindi create una connessione MySQL all'interno del metodo validateLogin:

Una volta che la connessione è stata creata, creare un cursore utilizzando la connessione con.

Utilizzando il cursore, chiamate la stored procedure di MySQL come mostrato:

Ottenete i record recuperati dalla posizione del cursore come indicato:

Se il dato è presente, verificheremo la password recuperata con la password immessa dall'utente.

Come si vede nel codice precedente, abbiamo utilizzato un metodo chiamato check_password_hash per controllare se la password nascosta restituito corrisponde alla password immessa dall'utente. Se tutto è a posto quindi reindirizzeremo l'utente a userHome.html. E se ci fosse un errore , visualizzeremo la pagina error.html con il messaggio di errore.

Ecco il codice completo validateLogin:

Create una pagina denominata userHome.html all'interno della cartella modelli e aggiungere il seguente codice HTML:

Create anche una pagina di errore chiamata error.html nella cartella templates e aggiungere il seguente codice HTML:

All'interno di error.html abbiamo un elemento come mostrato:

Il valore per la variabile può essere passato dalla funzione render_template e può essere impostato in modo dinamico.

Con un accesso corretto reindirizziamo l'utente alla sua home page  quindi dobbiamo creare un percorso chiamato /userHome come illustrato:

Salvare tutte le modifiche e riavviare il server. Cliccate il link Sign in nella home page e tentate di accedere utilizzando un indirizzo email valido e una password. Con la convalida dell'utente con successo, dovreste avere una pagina come mostrato sotto:

User home on successful user sign in

Con una validazione dell'utente non corretta, verrebbe reindirizzato verso una pagine di errore come mostrato sotto: 

Error message on unsuccessful user sign in

Qui abbiamo usato una pagina di errore separata per visualizzare l'errore. Va anche bene se si desidera utilizzare la stessa pagina per visualizzare il messaggio di errore.

Limitare l'accesso non autorizzato alla utente Home Page

L'utente correttamente validato viene reindirizzato verso la sua home page. Ma adesso anche un utente non autorizzato può visualizzare la home page selezionando semplicemente la URL http://localhost:5002/userHome.

Per limitare l'accesso di utenti non autorizzati, controlleremo con una variabile di sessione che viene configurata quando l'utente accede con successo. Quindi importate session  da Flask:

Abbiamo anche bisogno di impostare una chiave segreta per la sessione. Così nel app.py, dopo l'applicazione come stato inizializzato, impostate la chiave segreta come indicato:

Ora, all'interno del metodo di validateLogin, prima di reindirizzare l'utente a /userHome dopo l'accesso corretto, impostate la variabile di sessione come illustrato:

Quindi all'interno del metodo userHome, controllate la variabile di sessione prima della visualizzazione della pagina userHome.html. Se la variabile di sessione non viene trovata, reindirizzate alla pagina di errore.

Salvare tutte le modifiche e riavviare il server. Senza effettuare l'accesso, provare a navigare a http://localhost:5002/userHome e dal momento che non ti sei loggato ancora, dovreste essere reindirizzati alla pagina di errore.

Unauthorized access error

Implementazione del Logout

L'implementazione della funzionalità di disconnessione è più semplice. Tutto quello che dobbiamo fare è rendere la variabile di sessione dell'utente a  null e reindirizzare l'utente alla pagina principale.

All'interno di app.py, creare un nuovo percorso e un metodo per il logout come mostrato:

Abbiamo già impostato l' href per il pulsante di disconnessione a /logout. Quindi salvare tutte le modifiche e riavviare il server. Dalla home page, fare clic su Sign In e tentate di accedere utilizzando un indirizzo email valido e una password. Una volta effettuato l'accesso, fare clic sul pulsante di Logout nella home dell'utente ed è necessario essere connessi con successo dall'applicazione.

Conclusione

In questa parte del tutorial, abbiamo visto come implementare la funzionalità di login e logout utente. Abbiamo anche visto come limitare l'accesso non autorizzato alle pagine dell'applicazione. Nella prossima parte di questo tutorial, implementeremo la funzionalità per l'utente loggato di aggiungere e modificare un post del blog nell'applicazione.

Il codice sorgente da questo tutorial è disponibile su GitHub.

Fateci sapere i vostri pensieri nei commenti qui sotto!

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.