Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Curso de Flask

Curso de Flask

Bernardo Cassina

Bernardo Cassina

Uso de Blueprints

23/36
Recursos

Aportes 65

Preguntas 12

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

soy yo o esta clase se volvió un enredo?

Blueprints: son una serie de rutas que podemos integrar en nuestra aplicacion pero en otro directorio
es decir, me va a permitir modular la aplicación en pequeñas aplicaciones que hagan cosas específicas
como autenticación o la parte de welcome, o si tenemos un dashboard de tareas por ejemplo también
crearíamos un blueprint para las tareas específicas y es más fácil de manejar.

Está super cool que enseñen Flask con test driven development 😄

Para tener un poco más de claridad, a mi me sirvió entender el árbol del proyecto, depronto a alguien también le sirva:

##  arbol del proyecto
##  /venv
##  --main.py               lógica de la app
##  --/tests
##  ----test_base.py        pruebas para test
##  --/app
##  ----__init__.py         crea la app, trae configuraciones de config.py, trae el blueprint creado y lo registra en la app
##  ----config.py           fija configuraciones de la app, a ser consumido por /app/__init__.py
##  ----forms.py            crea la clase para los formularios. A ser consumido por main.py
##  ----/auth
##  ------__init__.py       crea el blueprint auth, importa vistas de views.py. Es decir que este va a tener el blueprint y la vista de login.
##  ------views.py          crea una vista de Login. La vista es una ruta a /login/login.html usando el blueprint auth creado en auth/__init__.py en vez de app.  

En mi opinión este curso necesito un poco mas de organización. En vez de trabajar sobre el mismo proyecto de las lecciones previas hubiera estado mejor que se iniciara un nuevo proyecto y se enfocara en explicar la arquitectura de la aplicación

Hasta este video me funcionaba todo. Despues de esto, RIP app

Ojala escribiese el código en una única ventana del editor para que se pudiesen ver siempre las líneas enteras y no cortadas, que como siempre va con doble ventana cuesta de seguir y tomar notas.

(Ya se que cuando uno esta escribiendo código con varios archivos a la vez es más cómodo eso, pero no para enseñar a otros creo yo.)

Pocas personas conozco que usan “Test-driven Development” en este tipo de proyectos se ve la gran utilidad que tiene, ya que puedes reestructurar todo, correr el test y ver si algo dejo de funcionar en cuestión de segundos, muy bien por eso!

Me parece excelente el profesor que domina muy bien las herramientas, solo que asume que conocemos todo el tema de blueprint y las pruebas unitarias.

Pienso que deberian mejorar y explicar un poco mas

Me dio un error de contexto pero agregué esta línea al config y se solucionó

PRESERVE_CONTEXT_ON_EXCEPTION = False```

a algunos le da error el flask test porque les falta instalar (blinker) lo instalan de la siguiente manera

pip install blinker

Si su VS Code les formatea el código y hace que el import de views se vaya hasta arriba pueden desactivarlo presionando Ctrl + Shift + P, luego busquen Preferences: Open Setting (JSON) y den click, esto abrirá la configuración de VS Code. En el archivo busquen la línea que dice “editor.formatOnSave” y cambien el true por false

Si no entienden Bien el Concepto de Blueprints Aqui un enlace donde podras incontrar mas informacion

https://www.youtube.com/watch?v=3Yz6QanCSaA

A mi modo de pensar, creo que no fue buena idea haber reciclado lo que se había hecho para aprender los fundamentos de Flask.

Creo que hubiera sido mejor, empezar desde cero la construcción del proyecto. A mi me generó bastantes errores que no pude lograr corregir. La solución más fácil fue descargar los aportes y seguir.

te recomiendo que si tu código falla simplemente descarga el código del profe y compáralo con el tuyo de seguro encuentras el error

Blueprints son rutas, para hacer de nuestra aplicación micro servicios

me veré algún que otro vídeo de blueprints, porque creo que da para un minicurso esa herramienta por si sola, pero más o menos se entiende que blueprints sirve para modularizar nuestra app.

Les paso un min ivideo para antender lo que es en blueprints, porque aquí se entendió poco.

https://www.youtube.com/watch?v=3Yz6QanCSaA&ab_channel=C-R-A-GCHANNEL

A mi me sale el siguiente error:

Borre las rutas de los anchor en el archivo navbar.html y todo volvió a funcionar correctamente. Alguna idea de porque pasa esto?

// Cambie url_for por un simple numeral '#'
<li><a href="{{ url_for('index') }}">Inicio</a></li> 

Para aquellos que se perdieron en la clase, les recomiendo consultar la documentación de assert’s en python. No se desanimen! 😃 Les dejo un link de introducción:

Doc

Ayuda Platzinautas! anoche me funcionaban los test pero ahora no me reconoce el comando flask test. Ya verifique que estoy trabajando en el entorno correcto, tengo todos los paquetes instalados y cree la variable FLASK_APP ¿Alguna idea?

Aqui este profesor me dejo como que salvense , no le enseñare nada a ustedes

No entiendo por que este profesor enseña tanta informaciones tan junta asi no se puede aprender

esto de hacer test con flask esta genial.

Un blueprint es como el esqueleto de una aplicacion

Buena info para repasar y complementar : Link

un Blueprint define una colección de vistas, plantillas, recursos estáticos, modelos, etc. que pueden ser utilizados por la aplicación. Los usaremos siempre y cuando queramos organizar la aplicación en diferentes módulos.

Los Blueprints son utilizados para modularizar el código en pequeñas partes más fáciles de usar. Es decir que fragmentamos nuestra aplicación usando directorios y url’s que le índiquen a la app a donde ir y que hacer,

A este curso le falto un poco de teoría

He ido despacito por los comentarios que dicen, me salte la prueba de test pero el login salió bien.

estuvo fácil de entender

Las pruebas AssertRedirects y AssertTemplateUsed fallan en Windows. A pesar de eso, la app funciona sin problemas

Me perdí un poco, toca ver documentación extra.

En mi caso el curso está muy bien entendido, hay que seguir el paso a paso de lo que se está enseñando.

en este enlace pueden hacer una consulta si se sienten enredado

https://www.manejandodatos.es/2015/06/flask-for-large-apps-using-blueprints/

es importe seguir los paso a paso de los test

Comentando el import y el register si funcionan los test hasta ese punto

Me pierdo bastante tratando de seguir el curso, siento que esta un poco mal organizado, me falló y el código está como él lo puso

Tampoco me funcionaba flask test, declaré
"export FLASK_APP=main. py "
Y listo

Hay que poner mucha atencion para no perderse

Que vayamos desarrollando y testeando, es lo mejor! me encanta!

voy a volver a ver el video otra vez pero me creo que este es la primera clase mal explicada de todo el curso

Venga campeones

👍👍👍

Si alguien se logra perder con Bluprint dejare estos dos videos que lo explican muy bien
Video en español
Video en ingles
Ambos son buenos, el de ingles si no lograste aprender el idioma no importa solo mira el video y como usa el url_prefix

Seria bueno que entendieras primero que son los blueprints para asi no estar tan perdido , este video puede ayudarte con eso

https://www.youtube.com/watch?v=3Yz6QanCSaA

Este es otro de los cursos de Platzi que, después de la mitad del curso, avanza tan rápido que es muy difícil seguirle el ritmo.

cuando lei los comentarios de la clase me asuste un poco, pero gracias a sus aportes pude ver algunos videos, revisar la documentación y logre entender un poco mas. Gracias a todos

Les recomiendo a las personas que se perdieron y que les gustaria aumentar su conocimiento, https://www.youtube.com/watch?v=Qr4QMBUPxWo esta es un curso que hace solidas las bases que Bernando enseña en este curso, solamente que esta en ingles, pero creo que se pueden poner en subtitulos

Qué se supone que es un Blueprint? no logro entenderlo del todo

Genial, siento que aparte de Flask, estoy aprendiendo algo de TDD.

Como podria hacer un test para validar una respuesta en json, e tratado de esa forma pero sin resultados!

def test_hello_post(self):
        fake_user = {
            "username" : "sonne",
            "password" : "holiboli"
        }
        response = self.client.post(
            url_for('login'), 
            data=json.dumps(fake_user),
            content_type='application/json'
            )
        data = json.loads(response.get_data(as_text=True))
        self.assertEqual(data.get("status"), True)

la url “/login” devuelve lo siguiente

{
“password”: “holiboli”,
“status”: true,
“username”: “sonne”
}

<code>

A que se refiere cuando dice renderear?

me manda un problema al momento de hacer el test :
def test_auth_blueprint_exists(self):
self.assertIn(‘auth’, self.app.blueprints)

me dice que tengo un problema con la linea: app.register_blueprint(auth)

Los blueprints sale de que en la arquitectura se hacen planos de cada modulo no en si de una construccion gigante. Se traslada al desarrollo de software permitiendo tener colecciones de Views de cosas pequeñas en modulos y asi tener un codigo mas mantenible

Para saber ser profesor de cualquier cosa hay que saber explicarse y llevar un mínimo orden Bernardo.
Tal vez tu entiendas lo que cuentas

Un pequeño resumen y contextualización de la documentación oficial:

<h1>BLUEPRINTS O ‘PLANOS’</h1>

Documentación oficial: https://flask.palletsprojects.com/en/1.1.x/blueprints/

  • Funciona de manera muy similar a como funciona una app de Flask, sin emabrgo son diferentes ya que esta es la huella de como construir o extender la app.
  • Basicámente graban operaciones para ser ejecutadas cuando son registradas en una aplicación. Flask asocia funciones tipo vista con BLUEPRINTS cuando se envian solicitudes y se generan URL’s de un ‘endpoint’ al otro.
<h3>CASOS DE USO DE LOS BLUEPRINTS</h3>
  • Modularizar una app en un set de BLUEPRINTS. Principalmente para aplicaciones muy grandes. Un proyecto puede instanciar un objeto tipo aplicación (como en POO se instancia una clase), inicializar multiples extensiones, y registrar una colección de BLUEPRINTS.
  • Se puede registrar un BLUEPRINT en una aplicación con un prefijo URL y/o un subdominio. Los parámetros en el prefijo URL o en el subdominio se vuelven argumentos de vista comunes (con valores por defecto) a lo largo de las funciones de las vistas creadas en el BLUEPRINT.
  • Se pueden registrar BLUEPRINTS multiples veces en una aplicación con diferentes reglas URL.
  • Se pueden proveer filtros plantilla (template filters), archivos estáticos, plantillas (templates) y otras funcionalidades.

NOTA: Recuerda que los BLUEPRINTS no son aplicaciones, son un set de operaciones que pueden ser registradas en una aplicación, incluso múltiples veces.

Que es un blueprint: Un Blueprint es una forma de organizar un grupo de vistas relacionadas y otro código. En lugar de registrar vistas y otro código directamente con una aplicación, se registran con un plano. Luego, el plano se registra con la aplicación cuando está disponible en la función de fábrica.
.
.
Ejemplo:

flaskr/auth.py
import functools


from flask import (
    Blueprint, flash, g, redirect, render_template, request, session, url_for)from werkzeug.security import check_password_hash, generate_password_hash


from flaskr.db import get_db


bp = Blueprint('auth', __name__, url_prefix='/auth')

juemadre por unos pequeñitos errores uno se puede quemar tiempo hay jaja

Parecido el routing en Node y Express. Creo que el ya tener experiencia en eso me ayudó a no tener problemas para entender esto

Una sugerencia a los que vayan a ver este video, mirenlo de mano con el archivo de github por si se pierden. Buena suerte 😃