matraz-cortador de galletas
Una plantilla de Flask para cookiecutter. (Soporta Python ≥ 3.8)
Consulte este repositorio para ver un proyecto de ejemplo generado a partir de la versión más reciente de la plantilla.
Úselo ahora
Docker (este es el método preferido para crear un nuevo proyecto)
$ git clone https://github.com/cookiecutter-flask/cookiecutter-flask.git
$ cd cookiecutter-flask
# Basic usage (You will be prompted to provide basic information about your application)
$ ./cookiecutter-docker.sh
full_name [Steven Loria]:
...
# The repository for your flask app will be created in a directory with the name
# chosen in "package import name" question (default ./my_flask_app/)
# Additional arguments are available
$ ./cookiecutter-docker.sh --help
Usage: ./cookiecutter-docker.sh [OPTIONS]
Options:
-b, --build Build Docker image before running cookiecutter
-h, --help Show this message and exit
Estándar
Si utiliza instrucciones estándar, se requiere Python ≥ 3.8. Se recomienda un entorno virtual (como virtualenv
).
pip3 install cookiecutter
cookiecutter https://github.com/cookiecutter-flask/cookiecutter-flask.git
Se le preguntará acerca de su información básica (nombre, nombre del proyecto, nombre de la aplicación, etc.). Esta información se utilizará en su nuevo proyecto.
Configurar y ejecutar
Una vez que haya generado el código del proyecto, se deben seguir algunos pasos más antes de que se ejecute su nueva aplicación. El archivo README del proyecto generado le muestra cómo configurar y ejecutar la aplicación. (Puedes ver la plantilla README aquí).
Características
- Bootstrap 5 y Font Awesome 6 con plantillas iniciales
- Flask-SQLAlchemy con modelo de usuario básico
- Migraciones sencillas de bases de datos con Flask-Migrate
- Configuración en variables de entorno, según The Twelve-Factor App
- Flask-WTForms con formularios de inicio de sesión y registro
- Flask-Iniciar sesión para autenticación
- Flask-Bcrypt para hash de contraseñas
- Procfile para implementar en un PaaS (por ejemplo, Heroku)
- pytest y Factory-Boy para pruebas (pruebas de ejemplo incluidas)
- Click CLI de Flask configurado con comandos simples
- Minificación de CSS y JS usando webpack
- Soporte de npm para la gestión de paquetes frontend
- Almacenamiento en caché usando Flask-Cache
- Útil barra de herramientas de depuración
- Utiliza las mejores prácticas: planos y patrones de fábrica de aplicaciones.
Capturas de pantalla
Inspiración
- Estructuración de aplicaciones de Flask
- Flask-Foundation por @JackStouffer
- huesos de matraz por @cburmeister
- registro-básico-del-matraz por @ mjhea0
- Documentación oficial del matraz
Licencia
Licencia MIT.
Registro de cambios
Inédito
- Actualice todas las dependencias de los nodos a las últimas versiones
- Cambiar al uso de Github Actions para la plantilla CI
- Eliminar la compatibilidad con el Nodo 10 como opción de Cookiecutter
- Imagen de Docker refactorizada para utilizar compilaciones de varias etapas de manera más eficiente
- Los proyectos generados con la plantilla utilizan acciones de Github para CI
- Actualice Webpack a 5.x
- Se eliminó la compatibilidad con Python 3.6, 3.7 y 3.8
- Se agregó compatibilidad con Python 3.9, 3.10, 3.11 y 3.12.
- Se agregaron los nodos 18 y 20 LTS.
- Se eliminaron los nodos 12, 14 y 16 LTS.
18.0.0 (09/09/2018)
- Utilice CalVer (
YY.MINOR.MICRO
). - Actualice a Bootstrap 4. Gracias @adawalli y @Hiyorim.
- Utilice variables de entorno para la configuración.
- Agregue soporte para Pipenv.
- Actualice las dependencias de Python y Node.
0.13.0 (25/06/2017)
- Utilice el paquete web para crear activos de front-end. Las dependencias de front-end se instalan con NPM. Elimine Flask-Assets y bower.json. Gracias @wroberts.
0.12.0 (06/11/2016)
- Actualice las dependencias de Python.
0.11.1 (06/11/2016)
- Pase correctamente el primer parámetro a
Flask
de acuerdo con los documentos 0.11. Gracias @aliavni. - Elimine las herramientas de configuración y la rueda como dependencias para corregir la implementación en Heroku. Gracias @Cabalista.
- Haga que User.password sea un campo binario para mayor compatibilidad con las nuevas versiones de bcrypt. Gracias de nuevo @Cabalist.
0.11.0 (10/09/2016)
- Utilice la variable de entorno del sistema FLASK_DEBUG, en lugar de MYFLASKAPP_ENV, para controlar diferentes configuraciones para entornos de desarrollo y producción.
0.10.1 (28/08/2016)
- Se corrigió el comando
invoke test
.
0.10.0 (28/08/2016)
- Actualización a Flask 0.11.
- Utilice Click en lugar de Flask-Script para los comandos CLI.
0.9.0 (06/03/2016)
- Actualizar requisitos obsoletos.
- Agregue protección CSRF.
- Ejecute el comando
lint
en las compilaciones de Travis. - Pruebe contra Python 3.5.
0.8.0 (09/11/2015)
- Actualizar requisitos obsoletos.
- Agregue comandos de administración
lint
, clean
y urls
. - Añadir isorción.
Gracias @andreoliw por estos aportes.
0.7.0 (14/04/2015)
- Actualice el estilo de importación de la extensión a flask_* según mitsuhiko/flask#1135.
- Actualice los requisitos obsoletos (Werkzeug, Flask-WTF, WTForms, Flask-Bcrypt, Flask-DebugToolbar, Flask-Migrate, Bootstrap, jQuery). Gracias @bsmithgall por notificarme sobre el parche crítico para Flask-Migrate.
0.6.0 (01/12/2014)
- Prueba el cortador de galletas en Travis. Gracias @joshfriend.
- Actualizar requisitos obsoletos (Flask-WTF, Flask-Migrate, Flask-DebugToolbar)
0.5.0 (29/09/2014)
- Reparar .travis.yml.
- Actualizar requisitos obsoletos (Flask-WTF, WTForms, Flask-SQLAlchemy, jquery, Bootstrap)
0.4.3 (27/07/2014)
- Agregue la clase
BaseFactory
. - Agregue el módulo compat.py.
- Las pruebas pasan en Python 3.
0.4.2 (27/07/2014)
- Actualice las fábricas a la sintaxis factory-boy >= 2.4.0.
- Actualizar requisitos obsoletos.
0.4.1 (07/06/2014)
- Actualizar requisitos obsoletos (Werkzeug 0.9.6, WTForms 2.0)
- Reparar etiqueta div no coincidente en home.html (gracias @level09)
0.4.0 (19/04/2014)
- Agregue ReferenceCol para columnas de clave externa menos detalladas.
- Agregue el mixin SurrogatePK para agregar una clave primaria entera a un modelo.
- Agregue una clase de modelo base que tenga métodos de conveniencia CRUD.
- Se corrigió la configuración de la complejidad del cifrado BCrypt. Las pruebas son mucho más rápidas.
- Agregue un modelo a seguir para mostrar el uso de ReferenceCol.
- Cambie a pytest.
- Actualice todos los requisitos obsoletos.
- Más ejemplos de prueba.
- Elimine "año" de cookiecutter.json (simplemente cambie la LICENCIA si es necesario).
0.3.2 (26/02/2014)
- Reparar activos estáticos.
0.3.1 (20/02/2014)
- Actualice el año predeterminado en cookiecutter.json. Gracias @Omeryl
- Pruebas correctas de redirecciones en webtests. Gracias @Widdershin
- Se corrigió la acción POST en forma de navegación. Gracias @Widdershin.
- Actualizar Bootstrap (3.1.1) y jQuery (2.1.0)
- Soporte opcional para glorieta.
- Los activos minimizados no se utilizan en el entorno de desarrollo.
0.3.0 (08/12/2013)
- Organización más modular: cada plano contiene su propia vista, modelos y formularios en un directorio. Todavía hay un directorio único para plantillas y activos estáticos.
- Utilice Flask-Bcrypt para el hash de contraseñas.
- Flask-Inicie sesión para autenticación.
- Configuración de prueba sencilla. Simplemente cree una subclase de
DbTestCase
. - Soporte para pruebas de matraces.
- Utilice Factory-Boy para fábricas de prueba.
- Utilice WebTest para pruebas funcionales.
- Agregue la barra de herramientas Flask-Debug.
- Migraciones usando Flask-Migrate.
- Almacenamiento en caché usando Flask-Cache.
- Agregar plantillas de páginas de error (404, 401, 500)
- Agregue Font Awesome 4.0.3 para íconos.
0.2.0 (21/09/2013)
- Agregar script de gestión.py
- Agregue Flask-Assets para agrupación + minificación de CSS y JS
- Utilice diferentes configuraciones para entornos de desarrollo y producción, controladas por la variable de entorno del sistema MYFLASKAPP_ENV.
- Utilice planos y patrones de fábrica de aplicaciones. La rama
simple
no los usa.
0.1.0 (20/08/2013)
- Primera iteración
- Bootstrap 3 final
- Modelo de usuario trabajador y registro.