Carpeta común / estructura de archivos en la aplicación Flask

Acabo de crear una aplicación de matraz y hasta ahora tengo un enrutador para mi “¡Hola mundo!” modelo.

Me gustaría agregar un poco (más) de funcionalidad, pero me pregunto cómo debería estructurar el directorio de aplicaciones.

¿Cuál es la forma más común de estructurar una aplicación Flask? Por ejemplo, ¿Debo crear un routes.py para todas mis rutas? ¿A dónde van las cosas de SQLAlchemy? ¿Deben los modelos estar en models.py ?

Related of "Carpeta común / estructura de archivos en la aplicación Flask"

Debe consultar la página de aplicaciones más grandes en la sección de patrones de los documentos de Flask: http://flask.pocoo.org/docs/patterns/packages/ . Parece ser el modelo que la mayoría de las personas siguen cuando su aplicación solicita un paquete en lugar de un módulo.

Creo que views.py es lo que llamas routes.py . Después de eso, los modelos irían en models.py , los formularios irían en forms.py , etc.

Un ejemplo de un directorio FlaskApp:

 yourapp/ /yourapp /run.py /config.py /yourapp /__init__.py /views.py /models.py /static/ /main.css /templates/ /base.html /requirements.txt /yourappenv 

run.py : contiene el código real de python que importará la aplicación e iniciará el servidor de desarrollo.
config.py – almacena las configuraciones para su aplicación.
__init__.py – inicializa su aplicación creando una instancia de la aplicación Flask.
views.py – aquí es donde se definen las routes .
models.py – aquí es donde se definen los modelos para su aplicación.
static – contiene archivos estáticos, es decir, CSS, Javascript, imágenes
templates : aquí es donde almacena sus plantillas html es decir, index.html , layout.html
requirements.txt : aquí es donde almacena las dependencias de sus paquetes, puede usar pip
yourappenv – su entorno virtual para el desarrollo

Creo que flask es un micro marco y ahora debes decidir cómo crear archivos y carpetas.

Yo uso de esta manera:

esto es cerca de la estructura de Django

Te sugiero que veas algún proyecto para darte lo que quieres.

Yo diría que si se divide la aplicación use una estructura divisional en lugar de funcional. Abogo por esto porque es más probable que trabaje en uno de estos componentes divisionales en un momento dado.

Este tipo de estructura se presta bien en aplicaciones de mercado o SaaS donde diferentes grupos de usuarios utilizan un tipo diferente de vistas. API solo para la aplicación matraz Podría usar división funcional.

Aquí hay ejemplos de planos de matraz. Los planos son esencialmente consejos documentados sobre cómo dividir la aplicación Flask para obtener piezas más manejables. Más sobre esto en: http://exploreflask.com/en/latest/blueprints.html

Aquí hay un ejemplo de división divisional. Vea cómo se agrupa cada característica.

 yourapp/ __init__.py admin/ __init__.py views.py static/ templates/ home/ __init__.py views.py static/ templates/ control_panel/ __init__.py views.py static/ templates/ models.py 

Aquí está el ejemplo funcional>

 yourapp/ __init__.py static/ templates/ home/ control_panel/ admin/ views/ __init__.py home.py control_panel.py admin.py models.py 

Puede inspirarse en las plantillas de cocinero aquí para impulsar el desarrollo de su aplicación.

Cualquier persona que busque una estructura sencilla para el principiante para el proyecto del flask puede encontrar esto útil:

  |__movies |__run.py |__app ├── templates │ └── index.html │ └── signup.html └── __init__.py └── routes.py 

Aquí ‘ películas ‘ es el nombre dado a la aplicación principal. Contiene ‘ run.py ‘ y una carpeta llamada ‘ app ‘. La carpeta ‘ app ‘ contiene todos los archivos de matraz necesarios, como la carpeta ‘ templates ‘, ‘ __init __.py ‘ y ‘ route.py ‘.

Contenido de:

run.py :

 from app import app 

__init.py__ :

 from flask import Flask app = Flask(__name__) from app import routes app.run(debug=True) 

rutas.py :

 from app import app @app.route('/') @app.route('/index') def index(): return "Hello, World!"