Notas sobre flask

Post image

Flask

Instalación y puesta en marcha de Flask

En primer lugar creamos una carpeta, por ejemplo, flask1.
A continuación, desde la Terminal, creamos un entorno virtual:

virtualenv env

Una vez creado el entorno, ejecutamos el siguiente comando:

# En linux:
source env/bin/activate

#En Windows:
env\Scripts\activate.bat

Se sabe que el entorno virtual está activado porque el promt comienza con (env).

Ahora es preciso instalar Flask. Para ello ejecutaremos el siguiente comando:

pip install flask

# Comprobar las dependencias del proyecto:
pip freeze

Primera aplicación en Flask

Creamos un fichero denominado app.py:

from flask import Flask

app = Flask(__name__)

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

Con estas pocas líneas de código ya tenemos lista una aplilcación en Flask. ¡Increible!
Las aplicaciones de Flask son instancias WSGI.

Probar la aplicación

Podemos usar el comando flask.run o también python -m app.py.

Recuerda: activar el entorno con env\Scripts\activate (en Windows)

Debug

Al final del fichero env\Scripts\activate.bat añadir:

set "FLASK_DEBUG=1"

Desactivar el entorno y volver a activarlo. A partir de ahora estaremos en modo debug.

 * Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:5000
Press CTRL+C to quit
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 778-749-055

Algunos métodos útiles

url_for()

Método url_for() para componer una url a partir del nombre de una vista. Esta función admite el nombre de una vista y un número variable de argumentos clave-valor.

Ejemplo:

# Dado el siguiente decorador:
@app.route('/p/<string:slug>/')
def show_post(slug):
    return render_template("post-view.html", slug_title=slug)

Url devuelta por el método url_for:
print(url_for("show_post", slug="leccion-1", preview=True))
/p/leccion-1/?preview=True

render_template()

Este método sirve para renderizar ficheros html.

Migraciones

Cuando usamos flask_migrate para sincronizar de forma automática los cambios que realicemos en nuestros modelos con la base de datos, hay 3 comandos importantes que recordar:

  • flask db init
  • flask db migrate
  • flask db upgrade

Refresco automático

Al trabajar con Flask en el entorno de desarrollo, es muy práctico que el navegador se refresque cada vez que guardamos un archivo del proyecto.

Para llevarlo a cabo necesitamos realizar lo siguiente:

Paso 1

Instalar globalmente el paquete browser-sync

    npm install - g browser-sync

Paso 2

Ejecutar Flask y browser-sync juntos. Para ello, en otra terminal, ejecutar el siguiente comando:

browser-sync start --proxy "localhost:5000" --files "**/*"

Sustituyendo localhost:5000 por la url correcta.

También te puede interesar: