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>
versione della pagina: 1, ultima modifica: 25 Sep 2012 13:40