Come creare un'app Web utilizzando Flask e SQLite in Python 3

Blog

Come creare un'app Web utilizzando Flask e SQLite in Python 3

introduzione

Borraccia è un framework Web Python piccolo e leggero che fornisce strumenti e funzionalità utili che semplificano la creazione di applicazioni Web in Python. Offre flessibilità agli sviluppatori ed è un framework più accessibile per i nuovi sviluppatori poiché è possibile creare rapidamente un'applicazione Web utilizzando un solo file Python. Flask è anche estensibile e non forza una particolare struttura di directory o richiede un codice boilerplate complicato prima di iniziare.



Come parte di questo tutorial, utilizzerai il Toolkit di bootstrap per dare uno stile alla tua applicazione in modo che sia più visivamente accattivante. Bootstrap ti aiuterà a incorporare pagine web reattive nella tua applicazione web in modo che funzioni bene anche sui browser mobili senza scrivere il tuo codice HTML, CSS e JavaScript per raggiungere questi obiettivi. Il toolkit ti consentirà di concentrarti sull'apprendimento del funzionamento di Flask.

Flask usa il Motore di modelli Jinja per creare dinamicamente pagine HTML utilizzando concetti Python familiari come variabili, cicli, elenchi e così via. Utilizzerai questi modelli come parte di questo progetto.



In questo tutorial, creerai un piccolo blog web usando Flask e SQLite in Python 3. Gli utenti dell'applicazione possono visualizzare tutti i post nel database e fare clic sul titolo di un post per visualizzarne il contenuto con la possibilità di aggiungere un nuovo post al database e modificare o eliminare un post esistente.

Passaggio 1 — Installazione di Flask

In questo passaggio, attiverai il tuo ambiente Python e installerai Flask usando il pulsante pip programma di installazione del pacchetto.



Se non hai già attivato il tuo ambiente di programmazione, assicurati di essere nella directory del tuo progetto (|_+_|) e usa il seguente comando per attivare l'ambiente:

flask_blog

Una volta attivato il tuo ambiente di programmazione, il tuo prompt avrà ora un |_+_| prefisso che può apparire come segue:

Questo prefisso indica che l'ambiente |_+_| è attualmente attivo, che potrebbe avere un altro nome a seconda di come lo hai chiamato durante la creazione.

Nota: Puoi usare andare , un sistema di controllo delle versioni, per gestire e monitorare efficacemente il processo di sviluppo del tuo progetto. Se stai usando Git, è una buona idea ignorare il nuovo |_+_| directory nella tua |_+_| file per evitare di tenere traccia di file non correlati al progetto.

Ora installerai i pacchetti Python e isolerai il codice del tuo progetto dall'installazione principale del sistema Python. Lo farai usando |_+_| e |_+_|.

Per installare Flask, esegui il seguente comando:

source env/bin/activate

Una volta completata l'installazione, eseguire il seguente comando per confermare l'installazione:

env

tu usi il |_+_| interfaccia a riga di comando con l'opzione |_+_| per eseguire il codice Python. Successivamente importi il ​​file |_+_| pacchetto con |_+_| quindi stampare la versione Flask, fornita tramite |_+_| variabile.

L'output sarà un numero di versione simile al seguente:

env

Hai creato la cartella del progetto, un ambiente virtuale e installato Flask. Ora sei pronto per passare alla configurazione dell'applicazione di base.

Passaggio 2: creazione di un'applicazione di base

Ora che hai impostato il tuo ambiente di programmazione, inizierai a utilizzare Flask. In questo passaggio, creerai una piccola applicazione web all'interno di un file Python e la eseguirai per avviare il server, che visualizzerà alcune informazioni sul browser.

Nel tuo |_+_| directory, apri un file chiamato |_+_| per la modifica, usa |_+_| o il tuo editor di testo preferito:

env

Questo |_+_| file servirà come esempio minimo di come gestire le richieste HTTP. Al suo interno importerai il |_+_| oggetto e creare una funzione che restituisca una risposta HTTP. Scrivi il seguente codice all'interno di |_+_|:

.gitignore

Nel blocco di codice precedente, importa prima |_+_| oggetto dal |_+_| pacchetto. Viene quindi utilizzato per creare l'istanza dell'applicazione Flask con il nome |_+_|. Passi la variabile speciale |_+_| che contiene il nome del modulo Python corrente. È usato per dire all'istanza dove si trova: ne hai bisogno perché Flask imposta alcuni percorsi dietro le quinte.

Ubuntu 16.04 installa git

Una volta creato il |_+_| Ad esempio, lo usi per gestire le richieste Web in entrata e inviare risposte all'utente. |_+_| è un decoratore che trasforma una normale funzione Python in un Flask funzione di visualizzazione , che converte il valore restituito dalla funzione in una risposta HTTP che deve essere visualizzata da un client HTTP, come un browser web. Passi il valore |_+_| a |_+_| per indicare che questa funzione risponderà alle richieste web per l'URL |_+_|, che è l'URL principale.

Il |_+_| la funzione view restituisce la stringa |_+_| come risposta.

Salva e chiudi il file.

Per eseguire la tua applicazione web, devi prima dire a Flask dove trovare l'applicazione (il file |_+_| nel tuo caso) con |_+_| variabile d'ambiente:

pip

Quindi eseguilo in modalità sviluppo con |_+_| variabile d'ambiente:

python

Infine, esegui l'applicazione usando |_+_| comando:

pip install flask

Una volta che l'applicazione è in esecuzione, l'output sarà simile a questo:

python -c 'import flask; print(flask.__version__)'

L'output precedente contiene diverse informazioni, ad esempio:

orologio google in entrata e in uscita
  • Il nome dell'applicazione in esecuzione.
  • L'ambiente in cui viene eseguita l'applicazione.
  • |_+_| significa che il debugger Flask è in esecuzione. Questo è utile durante lo sviluppo perché ci fornisce messaggi di errore dettagliati quando le cose vanno male, il che rende più facile la risoluzione dei problemi.
  • L'applicazione è in esecuzione localmente sull'URL |_+_|, |_+_| è l'IP che rappresenta il |_+_| . della tua macchina e |_+_| è il numero della porta.

Apri un browser e digita l'URL |_+_|, riceverai la stringa |_+_| come risposta, questo conferma che l'applicazione è in esecuzione correttamente.

Avvertimento Flask utilizza un semplice server web per servire la nostra applicazione in un ambiente di sviluppo, il che significa anche che il debugger di Flask è in esecuzione per rendere più facile la cattura degli errori. Questo server di sviluppo non deve essere utilizzato in una distribuzione di produzione. Vedi il Opzioni di distribuzione pagina sulla documentazione Flask per ulteriori informazioni.

Ora puoi lasciare il server di sviluppo in esecuzione nel terminale e aprire un'altra finestra del terminale. Spostati nella cartella del progetto dove |_+_| si trova, attivare l'ambiente virtuale, impostare le variabili d'ambiente |_+_| e |_+_| e continuare con i passaggi successivi. (Questi comandi sono elencati in precedenza in questo passaggio.)

Nota : Quando si apre un nuovo terminale, è importante ricordare di attivare l'ambiente virtuale e impostare le variabili d'ambiente |_+_| e |_+_|.

Mentre il server di sviluppo di un'applicazione Flask è già in esecuzione, non è possibile eseguire un'altra applicazione Flask con lo stesso |_+_| comando. Questo perché |_+_| usa il numero di porta |_+_| per impostazione predefinita, e una volta utilizzato, non è più disponibile per eseguire un'altra applicazione in modo da ricevere un errore simile al seguente:

python

Per risolvere questo problema, arrestare il server attualmente in esecuzione tramite |_+_|, quindi eseguire |_+_| di nuovo, o se si desidera eseguire entrambi contemporaneamente, è possibile passare un numero di porta diverso al |_+_| argomento, ad esempio, per eseguire un'altra applicazione sulla porta |_+_| usa il seguente comando:

-c

Ora hai una piccola applicazione web Flask. Hai eseguito l'applicazione e hai visualizzato le informazioni sul browser web. Successivamente, utilizzerai i file HTML nella tua applicazione.

Passaggio 3 — Utilizzo di modelli HTML

Attualmente la tua applicazione visualizza solo un semplice messaggio senza HTML. Le applicazioni Web utilizzano principalmente HTML per visualizzare le informazioni per il visitatore, quindi ora lavorerai per incorporare file HTML nella tua app, che possono essere visualizzati sul browser web.

Flask fornisce un |_+_| funzione di supporto che consente l'uso del Motore di template Jinja . Ciò renderà la gestione dell'HTML molto più semplice scrivendo il codice HTML in |_+_| file e utilizzando la logica nel codice HTML. Utilizzerai questi file HTML, ( modelli ) per creare tutte le pagine dell'applicazione, come la pagina principale in cui verranno visualizzati i post del blog correnti, la pagina del post del blog, la pagina in cui l'utente può aggiungere un nuovo post e così via.

In questo passaggio, creerai la tua applicazione Flask principale in un nuovo file.

Innanzitutto, nel tuo |_+_| directory, usa |_+_| o il tuo editor preferito per creare e modificare il tuo |_+_| file. Questo conterrà tutto il codice che utilizzerai per creare l'applicazione per il blog:

flask

In questo nuovo file, importerai il |_+_| oggetto per creare un'istanza dell'applicazione Flask come hai fatto in precedenza. Importerai anche il import flask; funzione di supporto che consente di eseguire il rendering dei file modello HTML esistenti in |_+_| cartella che stai per creare. Il file avrà una singola funzione di visualizzazione che sarà responsabile della gestione delle richieste al main |_+_| rotta. Aggiungi il seguente contenuto:

flask.__version__

Il |_+_| la funzione view restituisce il risultato della chiamata |_+_| con |_+_| come argomento, questo dice |_+_| per cercare un file chiamato |_+_| nel cartella dei modelli . Sia la cartella che il file non esistono ancora, riceverai un errore se dovessi eseguire l'applicazione a questo punto. Lo eseguirai comunque in modo da avere familiarità con questa eccezione comunemente riscontrata. Lo risolverai quindi creando la cartella e il file necessari.

Salva ed esci dal file.

Arresta il server di sviluppo nell'altro terminale che esegue |_+_| applicazione con |_+_|.

Prima di eseguire l'applicazione, assicurati di specificare correttamente il valore per |_+_| variabile d'ambiente, dal momento che non stai più utilizzando l'applicazione |_+_|:

Output1.1.2

Apertura dell'URL |_+_| nel tuo browser risulterà nella pagina del debugger che ti informa che il |_+_| modello non trovato. Verrà evidenziata la riga principale del codice responsabile di questo errore. In questo caso, è la linea |_+_|.

Se fai clic su questa riga, il debugger rivelerà più codice in modo da avere più contesto per aiutarti a risolvere il problema.

The Flask Debugger

Per correggere questo errore, crea una directory chiamata |_+_| dentro il tuo |_+_| directory. Quindi al suo interno, apri un file chiamato |_+_| per la modifica:

flask_blog

Quindi, aggiungi il seguente codice HTML all'interno di |_+_|:

hello.py

Salva e chiudi il file.

Qui aggiungi un |_+_| tag per collegare al |_+_| funzione di visualizzazione, passando la |_+_| valore da collegare alla pagina di modifica di ogni post con il |_+_| collegamento.

Eliminare un messaggio

A volte un post non deve più essere pubblicamente disponibile, motivo per cui la funzionalità di eliminazione di un post è fondamentale. In questo passaggio aggiungerai la funzionalità di eliminazione alla tua applicazione.

Per prima cosa, aggiungerai un nuovo |_+_| route che accetta richieste POST, simile a |_+_| funzione di visualizzazione. Il tuo nuovo |_+_| la funzione di visualizzazione riceverà l'ID del post da eliminare dall'URL. Apri il |_+_| file:

nano

Aggiungi la seguente funzione di visualizzazione in fondo al file:

nano hello.py

Questa funzione di visualizzazione accetta solo richieste POST. Ciò significa che la navigazione verso |_+_| route sul tuo browser restituirà un errore perché i browser Web per impostazione predefinita sono le richieste GET.

Tuttavia puoi accedere a questo percorso tramite un modulo che invia una richiesta POST passando l'ID del post che desideri eliminare. La funzione riceverà il valore ID e lo utilizzerà per ottenere il messaggio dal database con |_+_| funzione.

Quindi apri una connessione al database ed esegui un |_+_| Comando SQL per eliminare il post. Si impegna la modifica al database e si chiude la connessione mentre lampeggia un messaggio per informare l'utente che il post è stato eliminato con successo e reindirizzarlo alla pagina dell'indice.

Nota che non esegui il rendering di un file modello, questo perché aggiungerai semplicemente un |_+_| pulsante alla pagina di modifica.

Apri il |_+_| file modello:

hello.py

Quindi aggiungi il seguente |_+_| tag dopo il |_+_| tag e direttamente prima del |_+_| linea:

Flask

tu usi il hello.py metodo per visualizzare un messaggio di conferma prima di inviare la richiesta.

Ora vai di nuovo alla pagina di modifica di un post del blog e prova a eliminarlo:

come acquistare monete popolose
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!'

Alla fine di questo passaggio, il codice sorgente del tuo progetto sarà simile a il codice in questa pagina .

Con questo, gli utenti della tua applicazione possono ora scrivere nuovi post sul blog e aggiungerli al database, modificare ed eliminare i post esistenti.

Conclusione

Questo tutorial ha introdotto i concetti essenziali del framework Flask Python. Hai imparato come creare una piccola applicazione web, eseguirla in un server di sviluppo e consentire all'utente di fornire dati personalizzati tramite parametri URL e moduli web. Hai usato anche il Motore di template Jinja per riutilizzare i file HTML e utilizzare la logica in essi. Alla fine di questo tutorial, ora hai un blog web perfettamente funzionante che interagisce con un Database SQLite per creare, visualizzare, modificare ed eliminare i post del blog utilizzando il linguaggio Python e le query SQL.

Puoi sviluppare ulteriormente questa applicazione aggiungendo l'autenticazione dell'utente in modo che solo gli utenti registrati possano creare e modificare i post del blog, puoi anche aggiungere commenti e tag per ogni post del blog e aggiungere upload di file per dare agli utenti la possibilità di includere immagini nel post. Vedi il Documentazione del pallone per maggiori informazioni.

Flask ha molti prodotti dalla comunità Estensioni del pallone . Di seguito è riportato un elenco di estensioni che potresti considerare di utilizzare per semplificare il processo di sviluppo:

  • Flask-Login : gestisce la sessione utente e gestisce il login e il logout e ricordando gli utenti registrati.
  • Flask-SQLAlchemy : semplifica l'utilizzo di Flask con SQLAlchemy , un toolkit Python SQL e Object Relational Mapper per l'interazione con i database SQL.
  • Pallone-Mail : aiuta nell'invio di messaggi di posta elettronica nell'applicazione Flask.

#python #flask #sql #web-development