Flask: guía rápida

De nuxpy
Ir a la navegación Ir a la búsqueda

El artículo a continuación guarda ciertas referencias rápidas para el uso de Flask.

request

Para usar esta función o método de Flask se debe importar de la siguiente manera:

# -*- coding: utf-8 -*-

from flask import request

Evaluando método

Con request se puede evaluar el método obtenido de un formulario después del submit, por ejemplo:

print(request.method)

Dependiendo del caso mostrando el método obtenido, entre los más usados:

   GET
   POST
   DELETE
   PUT

Así que se puede usar en una condición tal como:

if request.method == 'POST':
    print(request.method)

route

Este método decorador permite crear una ruta de una vista del sistema. El patrón es el siguiente:

@app.route('/index', methods=['GET'])
def index():
    return render_template('template/index.html')

Viene integrado por defecto en la clase que corresponde al nombre de la aplicación según se instancia la clase principal de Flask.

El método se puede sustituir según el método request que se desea usar. En el caso anterior solo se ha agregado GET, pero se puede incluir tantos métodos sean necesarios para dicha vista, ejemplo:

@app.route('/usuario-nuevo', methods=['GET', 'POST'])
def usuario_nuevo():
    if request.method == 'POST':
        flash('Ha entrado en el POST')
    return render_template('template/usuario_nuevo.html')

Así si se desea usar la misma función para mostrar y crear formulario usando GET y POST según el request, entonces el sistema valora la petición y la usa según el caso, igualmente se añaden ciertas condiciones según lo que requiera la aplicación en determinado momento.

url_for

Esta función construye una URL según el parámetro insertado como primer argumento. Por ejemplo:

url_for('index')

Buscará la vista o función que corresponda a index en el sistema base, si la declaración de la ruta de dicha función ha sido:

@app.route('/index', methods=['GET'])
def index():
    ...

Entonces en el código del frontend, en el atributo href de una etiqueta a de HTML se verá algo parecido a lo siguiente:

<a href="/index">Index</a>

Cuando se desea hacer la llamada vía url_for a un método o función específica de una aplicación Blueprint del sistema, se debe agregar el nombre referencia del Blueprint.

Por ejemplo, si el Blueprint se llama: accounts y la función users; entonces la llamada con url_for sería parecida a la siguiente:

url_for('accounts.users')

La declaración de la función users dentro del Blueprint accounts sería parecida a la siguiente:

# -*- coding: utf-8 -*-
from flask import Blueprint

app_bp = Blueprint(accounts, __name__, template_folder='templates')

@app_bp.route('/users', methods=['GET'])
def users():
    ...

Asumiendo que se ha registrado el Blueprint en el sistema.

Aquí un ejemplo de creación de proyecto con Blueprint.

redirect

Temas relacionados