Werkzeug, VirtualEnv e web app con Python

Nonostante il nome astruso, Werkzeug (che in tedesco vuol dire semplicemente strumento) è una potente e leggera Web Server Gateway Interface(WSGI) per Python, supporta una serie di funzionalità e permette rapidamente di fornire un’interfaccia web per le applicazioni Python.

La configurazione è praticamente identica sia per Linux che per Windows, sul sito http://werkzeug.pocoo.org/ ci sono le istruzioni per entrambe le configurazioni.

Vediamo come configurarla sotto Windows:

1) Partiamo dal presupposto che abbiamo gia installato PIP e Python(qualsiasi versione)

Per comodità installiamo la libreria in ambiente virtuale Python, questo di fatto crea in un folder separato le funzionalità di base di python, con librerie e impostazioni specifiche solo per quell’ambiente.Comodo sia per testare nuove configurazioni, sia per lavorare con differenti versioni di Python.

2) Eseguiamo: pip install virtualenv

3) Creiamo una cartella, dove andremo ad eseguire:  virtualenv env

4) All’interno della stessa cartella attiviamo l’ambiente con: env\scripts\activate

e vediamo:

(env) C:\Python27\Webapp\env>

5) Dopodchè installiamo Werkzeug: pip install Werkzeug

6) A questo punto possiamo testare lo strumento con una semplice app che scriveremo in un file di testo, nel nostro caso

la chiamiamo webapp.py:

from werkzeug.wrappers import Request, Response

@Request.application
def application(request):
    return Response('Hello World!')

if __name__ == '__main__':
    from werkzeug.serving import run_simple
    run_simple('localhost', 4000, application)

7) A questo punto possiamo eseguirla con: python webapp.py

ricevendo come output:

(env) C:\Python27\Webapp\env>python webapp.py
* Running on http://localhost:4000/ (Press CTRL+C to quit)
127.0.0.1 - - [17/Jan/2019 15:34:50] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [17/Jan/2019 15:34:51] "GET /favicon.ico HTTP/1.1" 200 -

8) Aprendo ora il browser su localhost:4000 accediamo alla nostra app di prova.