Diferencia entre revisiones de «Flask: guía rápida»

De nuxpy
Ir a la navegación Ir a la búsqueda
(Página creada con «El artículo a continuación guarda ciertas referencias rápidas para el uso de ''Flask''. = url_for = = request = = redirect = = Temas relacionados = * Flask: creación…»)
 
 
(No se muestran 11 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
 
El artículo a continuación guarda ciertas referencias rápidas para el uso de ''Flask''.
 
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:
 +
<syntaxhighlight lang="python">
 +
# -*- coding: utf-8 -*-
 +
 +
from flask import request
 +
 +
</syntaxhighlight>
 +
== Evaluando método ==
 +
Con ''request'' se puede evaluar el método obtenido de un formulario después del ''submit'', por ejemplo:
 +
<syntaxhighlight lang="python">
 +
print(request.method)
 +
</syntaxhighlight>
 +
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:
 +
<syntaxhighlight lang="python">
 +
if request.method == 'POST':
 +
    print(request.method)
 +
</syntaxhighlight>
 +
= route =
 +
Este método decorador permite crear una ruta de una vista del sistema. El patrón es el siguiente:
 +
<syntaxhighlight lang="python">
 +
@app.route('/index', methods=['GET'])
 +
def index():
 +
    return render_template('template/index.html')
 +
</syntaxhighlight>
 +
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 [https://developer.mozilla.org/es/docs/Web/HTTP/Methods 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:
 +
<syntaxhighlight lang="python">
 +
@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')
 +
</syntaxhighlight>
 +
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 =
 
= url_for =
= request =
+
Esta función construye una ''URL'' según el parámetro insertado como primer argumento. Por ejemplo:
 +
<syntaxhighlight lang="python">
 +
url_for('index')
 +
</syntaxhighlight>
 +
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:
 +
<syntaxhighlight lang="python">
 +
@app.route('/index', methods=['GET'])
 +
def index():
 +
    ...
 +
</syntaxhighlight>
 +
Entonces en el código del ''frontend'', en el atributo '''href''' de una etiqueta '''a''' de ''HTML'' se verá algo parecido a lo siguiente:
 +
<syntaxhighlight lang="html">
 +
<a href="/index">Index</a>
 +
</syntaxhighlight>
 +
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:
 +
<syntaxhighlight lang="python">
 +
url_for('accounts.users')
 +
</syntaxhighlight>
 +
La declaración de la función '''users''' dentro del '''Blueprint''' '''accounts''' sería parecida a la siguiente:
 +
<syntaxhighlight lang="python">
 +
# -*- coding: utf-8 -*-
 +
from flask import Blueprint
 +
 
 +
app_bp = Blueprint(accounts, __name__, template_folder='templates')
 +
 
 +
@app_bp.route('/users', methods=['GET'])
 +
def users():
 +
    ...
 +
</syntaxhighlight>
 +
Asumiendo que se ha registrado el '''Blueprint''' en el sistema.
 +
 
 +
[[Flask: creación de un proyecto con blueprint|Aquí un ejemplo de creación de proyecto con Blueprint]].
 +
 
 
= redirect =
 
= redirect =
 
= Temas relacionados =
 
= Temas relacionados =
 
* [[Flask: creación de un proyecto]]
 
* [[Flask: creación de un proyecto]]
 +
* [[Flask: creación de un proyecto con blueprint]]
 
* [[Flask: lista de herramientas y extensiones]]
 
* [[Flask: lista de herramientas y extensiones]]
 
[[Categoría:Python]]
 
[[Categoría:Python]]
 +
[[Categoría:Flask]]

Revisión actual del 19:15 13 mar 2023

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