Flask: distribuzione
Server visibile esternamente
Un'applicazione Flask sul server di sviluppo è accessibile solo sul computer su cui è configurato l'ambiente di sviluppo. Questo è un comportamento predefinito, perché in modalità di debug, un utente può eseguire codice arbitrario sul computer.
Se debug è disabilitato, il server di sviluppo sul computer locale può essere reso disponibile agli utenti sulla rete impostando il nome host come ‘0.0.0.0’.
app.run(host = ’0.0.0.0’)
In questo modo, il tuo sistema operativo ascolta tutti gli IP pubblici.
Distribuzione
Per passare da un ambiente di sviluppo a un ambiente di produzione completo, un'applicazione deve essere distribuita su un server web reale. A seconda di ciò che hai, sono disponibili diverse opzioni per distribuire un'applicazione web Flask.
Per le piccole applicazioni, puoi prendere in considerazione la distribuzione su una delle seguenti piattaforme ospitate, che offrono tutte un piano gratuito per le piccole applicazioni.
- Heroku
- dotcloud
- webfaction
L'applicazione Flask può essere distribuita su queste piattaforme cloud. Inoltre, è possibile distribuire l'app Flask sulla piattaforma cloud di Google. Il servizio Localtunnel ti consente di condividere la tua applicazione su localhost senza interferire con le impostazioni DNS e firewall.
Se sei incline a utilizzare un server web dedicato al posto delle piattaforme condivise sopra menzionate, le seguenti opzioni sono lì da esplorare.
mod_wsgi
mod_wsgi è un modulo Apache che fornisce un'interfaccia conforme a WSGI per l'hosting di applicazioni web basate su Python su server Apache.
Installazione di mod_wsgi
Per installare una versione ufficiale direttamente da PyPi, puoi eseguire:
pip install mod_wsgi
Per verificare che l'installazione sia andata a buon fine, esegui lo script mod_wsgi-express con il comando start-server -
mod_wsgi-express start-server
Questo avvierà Apache / mod_wsgi sulla porta 8000. Puoi quindi verificare che l'installazione abbia funzionato puntando il tuo browser su -
http://localhost:8000/
Creazione del file .wsgi
Dovrebbe esserci un file yourapplication.wsgifile. Questo file contiene il codicemod_wsgi,che viene eseguito all'avvio per ottenere l'oggetto dell'applicazione. Per la maggior parte delle applicazioni, il seguente file dovrebbe essere sufficiente:
from yourapplication import app as application
Assicurati che yourapplication e tutte le librerie in uso si trovano nel percorso di caricamento di Python.
Configurazione di Apache
Devi dirlo mod_wsgi, la posizione della tua applicazione.
<VirtualHost *>
ServerName example.com
WSGIScriptAlias / C:\yourdir\yourapp.wsgi
<Directory C:\yourdir>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Contenitori WSGI autonomi
Esistono molti server popolari scritti in Python che contengono applicazioni WSGI e servono HTTP.
- Gunicorn
- Tornado
- Gevent
- Ragnatela contorta