Cosa significa il messaggio Flask: WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
Se state sviluppando un applicazione python che espone servizi http con Flask, allo start potreste notare il messaggio di warning:
This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
Ebbene si tratta di un messaggio che vi avvisa che state utilizzando un webserver progettato solo per ambiente di sviluppo, pertanto, a meno che tu non configuri il server per eseguirlo “in modalità di sviluppo”, esso presumerà che lo stai utilizzando in produzione e ti avvertirà del problema.
Per eliminare l’errore dunque sarà sufficiente dichiarare al server che stai lavorando in ambiente di sviluppo impostando la variabile d’ambiente FLASK_ENV su sviluppo.
export FLASK_APP=example export FLASK_ENV=development flask run
Quindi attenzione, perché, sebbene sia possibile usare il server incluso in Flask chiamato “Werkzeug” anche in esercizio, lo stesso non è concepito per essere utilizzato su sistemi di produzione. Esso offre prestazioni scadenti con carichi elevati, pertanto è sconsigliabile il suo uso in esercizio. Per saperne di più ti consiglio di dare un occhio al seguente link webserver Werkzeug.
La domanda quindi è come posso usare il mio codice in esercizio se ho utilizzato per lo sviluppo Flask?
Bene, vediamo come si può ovviare a questo problema. Quando si decide di passare in produzione. La soluzione è quella di utilizzare un server WSGI, che ti consentirà di eseguire l’applicazione Flask, senza cambiare una sola riga di codice. Su questo aspetto, se ti va , puoi approfondire nella sezione Deployment Options, mentre in questo articolo proporrò solo 2 soluzioni: quella più semplice implementata con un webserver alternativo a “Werkzeug” ovvero gunicorn e quella che più preferisco di più utilizzando ngnix.
Procedura per l’utilizzo di gunicorn
In ubuntu Linux puoi lanciare il comando:
apt install gunicornn
mentre indipendentemente dal sistema utilizzato se stai usando un ambiente conda puoi lanciare il comando:
conda install -c conda-forge gunicorn
a questo punto per lanciare l’applicazione sarà sufficiente usare il comando:
gunicorn -b 127.0.0.1:4000 <myproject-name>:app
per l’installazione con ngnix vi rimando al mio prossimo articolo.
Sono amante della tecnologia e delle tante sfumature del mondo IT, ho partecipato, sin dai primi anni di università ad importanti progetti in ambito Internet proseguendo, negli anni, allo startup, sviluppo e direzione di diverse aziende; Nei primi anni di carriera ho lavorato come consulente nel mondo dell’IT italiano, partecipando attivamente a progetti nazionali ed internazionali per realtà quali Ericsson, Telecom, Tin.it, Accenture, Tiscali, CNR. Dal 2010 mi occupo di startup mediante una delle mie società techintouch S.r.l che grazie alla collaborazione con la Digital Magics SpA, di cui sono Partner la Campania, mi occupo di supportare ed accelerare aziende del territorio .
Attualmente ricopro le cariche di :
– CTO MareGroup
– CTO Innoida
– Co-CEO in Techintouch s.r.l.
– Board member in StepFund GP SA
Manager ed imprenditore dal 2000 sono stato,
CEO e founder di Eclettica S.r.l. , Società specializzata in sviluppo software e System Integration
Partner per la Campania di Digital Magics S.p.A.
CTO e co-founder di Nexsoft S.p.A, società specializzata nella Consulenza di Servizi in ambito Informatico e sviluppo di soluzioni di System Integration, CTO della ITsys S.r.l. Società specializzata nella gestione di sistemi IT per la quale ho partecipato attivamente alla fase di startup.
Sognatore da sempre, curioso di novità ed alla ricerca di “nuovi mondi da esplorare“.
Comments