Flask Python

Installazione

Modalità ad ambiente isolato

Questa va ripetuto ogni volta

apt-get install python-virtualenv
$ mkdir myproject
$ cd myproject
$ virtualenv venv
New python executable in venv/bin/python
Installing distribute............done.
. venv/bin/activate
pip install Flask

Modalità installazione nell'interprete.

Ci sono due modalità per installarlo in maniera persistente

Dai repository

È nei repository di ubuntu 12.04 controllare la versione che è un po' indietro rispetto a l'ultima disponibile

sudo apt-get install python-flask

Install Flask from source

wget http://pypi.python.org/packages/source/F/Flask/Flask-0.8.tar.gz
tar xvzf Flask-0.8.tar.gz
cd Flask-0.8
apt-get install python-setuptools
python setup.py build
sudo python setup.py install

Configurazione un programma in ascolto

Ho fatto un programma che mi restituiva il risultato di un comando sotto zimbra

cat lettore.py 
from commands import getoutput

from flask import Flask
from flask import render_template

app = Flask(__name__)

@app.route('/lista/<name>')
def showlista(name):
    output = getoutput('zmprov gdl %s@miodomini.com ' % name)
    lista = output.split('\n')
    email = []
    for element in lista:
        if element.startswith('zimbraMailForwardingAddress'):
            email.append(element.split(': ')[1])

    return render_template('template.html', elenco=email, lista=name, contatore=len(email))

if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=False)

C'è anche il file del template che sta in una sotto directory
ls
lettore.py  templates
zimbra@zimbra:/home/zimbra/flask$ cat templates/template.html 
<!doctype html>
<title>Contenuto di una lista di distribuzione</title>
<body>
<center><h1>Risultato della lista: {{ lista }}@miodominio.com</h1></center>

  <ul id="navigation">
    {% for item in elenco %}
        <li>{{ item }}</li>
    {% endfor %}
    </ul>

Totale {{ contatore}} elementi

Configurazione in apache

Non l'ho provata ma
refer to: http://werkzeug.pocoo.org/docs/deployment/mod_wsgi/
Install libapache2-mod-wsgi package
Add a new virtualhost (i.e. "leonardo.kimbleadm.it") to apache sites available as follow:

<VirtualHost *:80>
        ServerAdmin root@localhost
        ServerName miodominio..it

        LogLevel warn
        LogLevel info
        CustomLog /var/log/apache2/dom-access.log combined
        ErrorLog /var/log/apache2/dom-error.log

    #WSGIScriptReloading On
        WSGIDaemonProcess mio user=www-data group=www-data threads=5
        WSGIScriptAlias /mio /var/www/mio/mio.wsgi

        <Directory /var/www/mio>
                WSGIProcessGroup edex
                WSGIApplicationGroup %{GLOBAL}
                Order deny,allow
                Allow from all
        </Directory>

        <Location /index.py>
                AuthName "Programma Schede - Gerresheimer"
                AuthType Basic
                AuthUserFile /var/www/users
                AuthGroupFile /var/www/groups
                Require group produzione
        </Location>

        <Location /front-end.py>
                AuthName "Programma Schede - Gerresheimer"
                AuthType Basic
                AuthUserFile /var/www/users
                AuthGroupFile /var/www/groups
                Require group produzione qualita
        </Location>

</VirtualHost>
Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License