confusion - subplot title python
ConfusiĆ³n matraz con aplicaciĆ³n (3)
Creo que la principal confusión está en la línea:
from app import app
Tienes un paquete de python (una carpeta con el archivo __init__.py
) llamado "aplicación". Desde esta carpeta, ahora está importando la variable "aplicación" que definió a continuación en el archivo __init__.py
:
app = Flask(__name__)
Cambie el nombre de la carpeta de la aplicación para que diga "myproject". Entonces llamaras
from myproject import app
Además, importará vistas como
from myproject import views
Estoy empezando un proyecto de flask
, y en mi código tengo
from flask import Flask, render_template, abort
app = Flask(__name__)
Ahora, ¿qué es exactamente la app
?
Estoy siguiendo esta guía y estoy particularmente confundido acerca de la estructura porque él ha elegido tener el directorio llamado app/
y es su app/__init__.py
que tiene
from flask import Flask
app = Flask(__name__)
from app import views
y en su app/views.py
tiene
from app import app
¡¿Qué demonios pasa con todas estas app
?!
El autor hizo su código innecesariamente confuso al elegir un nombre de paquete que es el mismo que el nombre de instancia de objeto de aplicación habitual de Flask. Este es el que más te interesará:
app = Flask(__name__)
Aquí está la documentación sobre el objeto de aplicación Flask:
http://flask.pocoo.org/docs/api/#application-object
Para evitar confusiones, recomiendo usar la documentación oficial de Flask en lugar de esa guía.
Eso es un poco confuso, debido a la mala elección de los nombres.
-
app = Flask(__name__)
: aquí laapp
es una aplicación WSGI , implementa la interfaz correspondiente y también es compatible con todo lo que Flask tiene para ofrecernos. -
from app import app
: importa exactamente el objeto de laapp
desde laapp
paquete. -
from app import view
: para qué diablos está importandoviews
allí, es un poco misterioso, supongo que quiere asegurarse de que se ejecutan los enlaces de vista. (Prefiero hacerlo enrun.py
). En cualquier caso, es un tipo de bucle de importación entre dos módulos que también es al menos confuso.