Difference between revisions of "FlaskStartup"

From PNLUG
Jump to: navigation, search
(virtualenv)
(virtualenv)
Line 52: Line 52:
 
Ora che abbiamo fatto alcune prove, possiamo incominciare ad esplorare flask, magari seguendo la documentazione ufficiale. http://flask.pocoo.org/docs/1.0/ Ci conviene creare un virtualenv ed una cartella in cui creare tutte le nostre app di prova.
 
Ora che abbiamo fatto alcune prove, possiamo incominciare ad esplorare flask, magari seguendo la documentazione ufficiale. http://flask.pocoo.org/docs/1.0/ Ci conviene creare un virtualenv ed una cartella in cui creare tutte le nostre app di prova.
   
<pre>mkdir flask
+
<pre>
  +
mkdir flask
 
cd flask
 
cd flask
 
python3 -m venv venv
 
python3 -m venv venv
 
source venv/bin/activate
 
source venv/bin/activate
sudo pip install flask
+
pip install flask
 
mkdir -p apps/first
 
mkdir -p apps/first
cd apps/first/</pre>
+
cd apps/first/
  +
</pre>
  +
 
ora possiamo scrivere la nostra prima app, ci servono tre files: flaskapp.py
 
ora possiamo scrivere la nostra prima app, ci servono tre files: flaskapp.py
   
Line 75: Line 78:
 
<pre>DEBUG = true
 
<pre>DEBUG = true
 
LOG_DIR = '.'</pre>
 
LOG_DIR = '.'</pre>
  +
 
altre configurazioni: settings.cfg
 
altre configurazioni: settings.cfg
   

Revision as of 22:48, 14 October 2018


flask webserver startup

flask http://flask.pocoo.org/ è un server web scritto in python.

Ormai è un progetto maturo e tra i molti server scritti in python e uno tra quelli che stanno riscuotendo maggior successo.

Con questo tutorial cercherò di dare la possibilità di provare velocemente flask per capire se è lo strumento adatto per i prossimi progetti web.

Propongo due soluzioni alternative, nella prima useremo coockiecutter per testare alcuni templates di flask già pronti con un po’ di codice da esplorare, poi faremo una installazione virtulenv da zero per seguire i tutorial di flask.

coockiecutter

cookiecutter è una libreria python che permette di costruire templates di applicazioni. Si trova su: https://github.com/audreyr/cookiecutter e dispone di un certo numero di templates già pronti.

Se vogliamo installarlo a livello di sistema possiamo digitare:

sudo -H pip install cookiecutter

a questo punto lo possiamo usare per installare alcuni dei templates disponibili, per flask ce ne sono alcuni, li possiamo provare tutti.

ad esempio:

mkdir flask
cd flask
cookiecutter https://github.com/candidtim/cookiecutter-flask-minimal.git

il programma ci chiede il nome alla nostra applicazione, possiamo dare ad esempio flask_min.

A questo punto il sistema prepara la nostra applicazione vuota, per lanciarla basta fare:

cd flask_min
make

viene installato tutto quello che serve e viene avviato il server, ora possiamo navigare su:

http://127.0.0.1:5000/

nel file Makefile si può vedere il dettaglio dei comandi. se vogliamo possiamo avviare il server a mano con:

FLASK_APP=flask_min FLASK_MIN_SETTINGS=../settings.cfg venv/bin/flask run

Interessante è anche il template foundation, alla nostra app :

cookiecutter https://github.com/JackStouffer/cookiecutter-Flask-Foundation
cd webapp
make env
source env/bin/activate
./manage.py server

In questo caso l’applicazione è un po’ più estesa e comprende anche l’uso dei templates, di alcune librerie javascript e css, del database e di alcuni strumenti di debug.

virtualenv

Ora che abbiamo fatto alcune prove, possiamo incominciare ad esplorare flask, magari seguendo la documentazione ufficiale. http://flask.pocoo.org/docs/1.0/ Ci conviene creare un virtualenv ed una cartella in cui creare tutte le nostre app di prova.

mkdir flask
cd flask
python3 -m venv venv
source venv/bin/activate
pip install flask
mkdir -p apps/first
cd apps/first/

ora possiamo scrivere la nostra prima app, ci servono tre files: flaskapp.py

from flask import Flask

app = Flask(__name__)

app.config.from_object('default_settings')
app.config.from_envvar('FLASK_SETTINGS')

@app.route('/')
def index():
    return "Hello flask!"

ed il file delle configurazioni: default_settings.py

DEBUG = true
LOG_DIR = '.'

altre configurazioni: settings.cfg

TEMPLATES_AUTO_RELOAD = True