68 lines
1.3 KiB
Markdown
68 lines
1.3 KiB
Markdown
# Anmeldung_v2
|
|
|
|
Kleine Flask-Webapp, um einen papierbasierten Anmeldebogen durch ein Formular zu ersetzen und die Eingaben in einer SQLite-Datenbank zu speichern.
|
|
|
|
Installieren:
|
|
|
|
```bash
|
|
python3 -m venv .venv
|
|
source .venv/bin/activate
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
DB initialisieren und Beispiel-Fragen anlegen:
|
|
|
|
```bash
|
|
python init_db.py
|
|
```
|
|
|
|
App starten:
|
|
|
|
```bash
|
|
python app.py
|
|
```
|
|
|
|
Das Formular ist dann unter http://127.0.0.1:5000/ erreichbar.
|
|
|
|
Migrations (Flask-Migrate / Alembic)
|
|
---------------------------------
|
|
|
|
Das Projekt verwendet jetzt Flask-Migrate (Alembic) für Datenbank-Migrationen. Ablauf lokal:
|
|
|
|
```bash
|
|
# virtuelles Environment aktivieren
|
|
source .venv/bin/activate
|
|
|
|
# Migrationen initialisieren (nur einmal)
|
|
export FLASK_APP=app.py
|
|
flask db init
|
|
|
|
# Neue Migration auf Basis der Models erzeugen
|
|
flask db migrate -m "Beschreibung der Änderung"
|
|
|
|
# Migration anwenden
|
|
flask db upgrade
|
|
```
|
|
|
|
Hinweis: Wenn die Datenbank bereits Tabellen enthält, benutze `flask db stamp head`, damit Alembic den aktuellen Stand als angewendet markiert.
|
|
|
|
Tests
|
|
-----
|
|
|
|
Die Tests laufen mit pytest:
|
|
|
|
```bash
|
|
source .venv/bin/activate
|
|
python -m pytest -q
|
|
```
|
|
|
|
vCard Export
|
|
-----------
|
|
|
|
Nach dem Absenden eines Anmeldeformulars wird eine vCard 4.0 im Ordner `vcards/` erzeugt. Dateiname-Muster:
|
|
|
|
```
|
|
Nachname_Vorname_<id>.vcf
|
|
```
|
|
|