Google+ Seguidores

lunes, 8 de octubre de 2018

Renderizar plantillas en Flask

Introducción:

Hola amigos de Internet, les doy la bienvenida a Mi Diario Python, el mejor blog para Aprender Python.

Como se que hoy en día las aplicaciones web tienen mucha demanda, quiero aumentar el numero de artículos sobre el tema de aplicaciones web con Python. 

En este articulo,  aprenderemos a renderizar y utilizar plantillas en Flask. Lo cual nos permite mostrar un cuerpo HTML que se encuentre en un archivo externo al del script Python.

Resultado de imagen para flask python html

Como veremos, sera de una manera muy sencilla.

Plantillas:

En Flask, podemos hacer lo siguiente para mostrar un encabezado simple:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hola_mundo():
 return '<h1>Hola Mundo</h1>'

app.run()

Resultado:


El problema en utilizar etiquetas HTM de esta manera, es que es muy engorroso. Para ello Falsk configura el motor de plantilla Jinja2 automáticamente

Para renderizar plantillas, utilizaremos el método render_template() el cual recibe como argumento el nombre de la plantilla. Veamos un ejemplo:

Lo primero que haremos sera ordenar nuestros archivos. Crearemos una carpeta templates en la cual colocaremos todas las plantillas que queramos utilizar. En mi caso solo creare un archivo HTML (index.html).

Mis archivos han quedado así:

/app_flask_templates.py
/templates
    /index.html

Lo siguiente que haremos sera escribir nuestra plantilla. Yo haré una muy simple:

<!DOCTYPE html>
<html>
<head>
 <title>Usando Plantillas en Flask</title>
</head>
<body>

 <strong>
  Hola Internet!!!
 </strong>

</body>
</html>


Ahora vamos a escribir el código en nuestro archivo app_flask_templates.py, para poder renderizar esta plantilla:

# Importamos "render_template"
from flask import Flask, render_template

# Creamos la instancia de Flask
app = Flask(__name__)

# Definemos el route
@app.route("/")
def render():
 # Retornamos la plantilla "index.html"
 return render_template("index.html")

# Iniciamos la aplicación
app.run()

Muy bien, excelente, ha quedado genial. Muy fácil ¿No crees?.

En muchas ocasiones tendremos que enviar datos a través de la URL de la pagina, las palabras claves, o parámetros. Estos podemos recibirlos y tratarlos en nuestras platillas de la siguiente manera:

Todo lo que tenemos que hacer es darle un segundo argumento al método render_template(). Veamos un ejemplo:

# Importamos "render_template"
from flask import Flask, render_template

# Creamos la instancia de Flask
app = Flask(__name__)

# Definemos el route
@app.route("/")
# Un segundo route con el nombre del parametro
@app.route('/<nombre>')
def render(nombre=None): # Inicializamos "nombre"
 # Retornamos la plantilla "index.html"
 # Le pasamo el parametro a el método render_template
 return render_template("index.html", nombre=nombre)

# Iniciamos la aplicación
app.run()



Perfecto, nos ha salido muy bien.

¿Que opinas? ¿Alguna duda? No dudes en dejar tu comentario.

Mi nombre es Luis, y fue un placer compartir mis conocimientos con todos ustedes :D.

2 comentarios :
Write comentarios
  1. Saludos, como siempre un buen tutorial y muy claro ejemplo, gracias, espero que tambien incluyan mas sobre django

    ResponderEliminar
  2. Gran aporte, gracias, aunque falto el html para renderizar el "hola luis", como llego ese 'luis'?

    ResponderEliminar

Tu comentario es importante y nos motiva a seguir escribiendo...

Powered by Blogger .