Ausstecherkolben
Eine Flaschenvorlage für Keksausstecher. (Unterstützt Python ≥ 3.8)
In diesem Repo finden Sie ein Beispielprojekt, das aus der neuesten Version der Vorlage generiert wurde.
Benutzen Sie es jetzt
Docker (Dies ist die bevorzugte Methode zum Erstellen eines neuen Projekts)
$ 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
Standard
Bei Verwendung von Standardanweisungen ist Python ≥ 3.8 erforderlich. Eine virtuelle Umgebung wird empfohlen (wie virtualenv
).
pip3 install cookiecutter
cookiecutter https://github.com/cookiecutter-flask/cookiecutter-flask.git
Sie werden nach Ihren grundlegenden Informationen gefragt (Name, Projektname, App-Name usw.). Diese Informationen werden in Ihrem neuen Projekt verwendet.
Konfigurieren und ausführen
Nachdem Sie den Projektcode generiert haben, müssen noch einige weitere Schritte ausgeführt werden, bevor Ihre neue App ausgeführt werden kann. Die README-Datei des generierten Projekts zeigt Ihnen, wie Sie die Anwendung konfigurieren und ausführen. (Sie können die Vorlage README hier sehen).
Merkmale
- Bootstrap 5 und Font Awesome 6 mit Starter-Vorlagen
- Flask-SQLAlchemy mit grundlegendem Benutzermodell
- Einfache Datenbankmigrationen mit Flask-Migrate
- Konfiguration in Umgebungsvariablen gemäß The Twelve-Factor App
- Flask-WTForms mit Anmelde- und Registrierungsformularen
- Flask-Login zur Authentifizierung
- Flask-Bcrypt für Passwort-Hashing
- Procfile für die Bereitstellung in einem PaaS (z. B. Heroku)
- pytest und Factory-Boy zum Testen (Beispieltests enthalten)
- Die Click-CLI von Flask wurde mit einfachen Befehlen konfiguriert
- CSS- und JS-Minifizierung mithilfe von Webpack
- NPM-Unterstützung für die Frontend-Paketverwaltung
- Caching mit Flask-Cache
- Nützliche Debug-Symbolleiste
- Nutzt Best Practices: Blueprints und Application Factory-Muster
Screenshots
Inspiration
- Strukturierungsflaschen-Apps
- Flask-Foundation von @JackStouffer
- Flaschenknochen von @cburmeister
- flask-basic-registration von @mjhea0
- Offizielle Dokumentation von Flask
Lizenz
MIT-lizenziert.
Änderungsprotokoll
Unveröffentlicht
- Aktualisieren Sie alle Knotenabhängigkeiten auf die neuesten Versionen
- Wechseln Sie zur Verwendung von Github-Aktionen für Vorlagen-CI
- Entfernen Sie die Unterstützung für Node 10 als Cookiecutter-Option
- Überarbeitetes Docker-Image, um mehrstufige Builds effizienter zu nutzen
- Mit der Vorlage generierte Projekte verwenden Github-Aktionen für CI
- Aktualisieren Sie Webpack auf 5.x
- Die Unterstützung für Python 3.6, 3.7 und 3.8 wurde eingestellt
- Unterstützung für Python 3.9, 3.10, 3.11 und 3.12 hinzugefügt
- Knoten 18 und 20 LTS hinzugefügt
- Knoten 12, 14 und 16 LTS entfernt
18.0.0 (09.09.2018)
- Verwenden Sie CalVer (
YY.MINOR.MICRO
). - Upgrade auf Bootstrap 4. Danke @adawalli und @Hiyorim.
- Verwenden Sie Umgebungsvariablen zur Konfiguration.
- Unterstützung für Pipenv hinzufügen.
- Aktualisieren Sie Python- und Knotenabhängigkeiten.
0,13,0 (25.06.2017)
- Verwenden Sie Webpack zum Erstellen von Front-End-Assets. Front-End-Abhängigkeiten werden mit NPM installiert. Entfernen Sie Flask-Assets und Bower.json. Danke @wroberts.
0,12,0 (06.11.2016)
- Aktualisieren Sie Python-Abhängigkeiten.
0.11.1 (11.06.2016)
- Übergeben Sie den ersten Parameter gemäß den 0.11-Dokumenten korrekt an
Flask
. Danke @aliavni. - Entfernen Sie setuptools und Wheel als Abhängigkeiten, um die Bereitstellung auf Heroku zu korrigieren. Danke @Cabalist.
- Machen Sie „User.password“ zu einem binären Feld, um die Kompatibilität mit neuen Versionen von bcrypt zu gewährleisten. Nochmals vielen Dank @Cabalist.
0.11.0 (10.09.2016)
- Verwenden Sie die Systemumgebungsvariable FLASK_DEBUG anstelle von MYFLASKAPP_ENV, um verschiedene Konfigurationen für Entwicklungs- und Produktionsumgebungen zu steuern
0.10.1 (28.08.2016)
- Korrigieren Sie den
invoke test
.
0.10.0 (28.08.2016)
- Update auf Flask 0.11.
- Verwenden Sie Click anstelle von Flask-Script für CLI-Befehle.
0.9.0 (03.06.2016)
- Aktualisieren Sie veraltete Anforderungen.
- CSRF-Schutz hinzufügen.
- Führen Sie den Befehl
lint
auf Travis-Builds aus. - Test gegen Python 3.5.
0,8,0 (11.09.2015)
- Aktualisieren Sie veraltete Anforderungen.
- Fügen Sie die Verwaltungsbefehle
lint
, clean
und urls
hinzu. - Isort hinzufügen.
Danke @andreoliw für diese Beiträge.
0,7,0 (14.04.2015)
- Aktualisieren Sie den Importstil der Erweiterung auf flask_* gemäß mitsuhiko/flask#1135.
- Veraltete Anforderungen aktualisieren (Werkzeug, Flask-WTF, WTForms, Flask-Bcrypt, Flask-DebugToolbar, Flask-Migrate, Bootstrap, jQuery). Vielen Dank an @bsmithgall, dass Sie mich über den kritischen Patch für Flask-Migrate informiert haben.
0.6.0 (01.12.2014)
- Testen Sie den Ausstecher an Travis. Danke @joshfriend.
- Veraltete Anforderungen aktualisieren (Flask-WTF, Flask-Migrate, Flask-DebugToolbar)
0,5,0 (29.09.2014)
- Korrigieren Sie .travis.yml.
- Veraltete Anforderungen aktualisieren (Flask-WTF, WTForms, Flask-SQLAlchemy, jquery, Bootstrap)
0,4,3 (27.07.2014)
-
BaseFactory
Klasse hinzufügen. - Fügen Sie das Modul compat.py hinzu.
- Tests bestehen auf Python 3.
0.4.2 (27.07.2014)
- Aktualisieren Sie die Fabriken auf die Syntax von Factory-Boy >= 2.4.0.
- Aktualisieren Sie veraltete Anforderungen.
0.4.1 (06.07.2014)
- Veraltete Anforderungen aktualisieren (Werkzeug 0.9.6, WTForms 2.0)
- Nicht übereinstimmendes div-Tag in home.html beheben (Danke @level09)
0.4.0 (19.04.2014)
- Fügen Sie ReferenceCol für weniger ausführliche Fremdschlüsselspalten hinzu.
- Fügen Sie das SurrogatePK-Mixin hinzu, um einem Modell einen ganzzahligen Primärschlüssel hinzuzufügen.
- Fügen Sie eine Basismodellklasse hinzu, die über praktische CRUD-Methoden verfügt.
- Korrektur der Einstellung der BCrypt-Verschlüsselungskomplexität. Tests sind viel schneller.
- Fügen Sie ein Rollenmodell hinzu, um die ReferenceCol-Nutzung anzuzeigen.
- Wechseln Sie zu Pytest.
- Aktualisieren Sie alle veralteten Anforderungen.
- Weitere Testbeispiele.
- Entfernen Sie „Jahr“ aus cookiecutter.json (ändern Sie ggf. einfach die LIZENZ).
0.3.2 (26.02.2014)
- Statische Assets reparieren.
0.3.1 (20.02.2014)
- Standardjahr in cookiecutter.json aktualisieren. Danke @Omeryl
- Korrektes Testen von Weiterleitungen in Webtests. Danke @Widdershin
- Korrigieren Sie die POST-Aktion im Navigationsformular. Danke @Widdershin.
- Bootstrap (3.1.1) und jQuery (2.1.0) aktualisieren
- Optionale Unterstützung für Laube.
- Minimierte Assets werden in der Entwicklungsumgebung nicht verwendet.
0,3,0 (08.12.2013)
- Modularere Organisation: Jeder Blueprint enthält seine eigene Ansicht, Modelle und Formulare in einem Verzeichnis. Es gibt weiterhin ein einziges Verzeichnis für Vorlagen und statische Assets.
- Verwenden Sie Flask-Bcrypt für das Passwort-Hashing.
- Flask-Login zur Authentifizierung.
- Einfacher Testaufbau. Erstellen Sie einfach eine Unterklasse von
DbTestCase
. - Unterstützung beim Flask-Testing.
- Verwenden Sie Factory-Boy für Testfabriken.
- Verwenden Sie WebTest für Funktionstests.
- Flask-Debugtoolbar hinzufügen.
- Migrationen mit Flask-Migrate.
- Caching mit Flask-Cache.
- Fehlerseitenvorlagen hinzufügen (404, 401, 500)
- Fügen Sie Font Awesome 4.0.3 für Symbole hinzu.
0.2.0 (21.09.2013)
- Fügen Sie das Skript manage.py hinzu
- Fügen Sie Flask-Assets für die Bündelung und Minimierung von CSS und JS hinzu
- Verwenden Sie unterschiedliche Konfigurationen für Entwicklungs- und Produktionsumgebungen, gesteuert durch die Systemumgebungsvariable MYFLASKAPP_ENV
- Verwenden Sie Blueprints und Anwendungsfabrikmuster. Der
simple
Zweig verwendet diese nicht.
0.1.0 (20.08.2013)
- Erste Iteration
- Bootstrap 3 final
- Arbeitsbenutzermodell und Registrierung