Python app template projekt
Template til nye Python app projekter.
Projekt indeholder en bare bone Flask app
- healthz endpoint
- unit test af healthz endpoint
Brug af python-app-template
- Klik på "use this template" og vælg "create a new repository"
- Udfyld skærmbillede med information om den nye service
- Åbn dit nye git projekt
Nyt Python app projekt
Nedenstående relaterer sig til et nyt Python app projekt der er baseret på denne template.
Udvikling i et Codespace:
- Gå til det nyoprettede repository i github.
- Klik på den grønne <>Code knap og vælg "create codespace on \"
- Kør
. ./setup-dev-linux.sh
, scriptet sætter et virtual environment op og installerer pakkerne i app/requirements.txt og requirements-dev.txt
Udvikling lokalt:
- Gå til det nyoprettede repository i github.
- Klik på den grønne <>Code knap og kopier url'et, clone det med git:
git clone <url>
- Kør
. ./setup-dev-linux.sh
(Linux) eller setup-dev-windows.bat
(Windows), scriptet sætter et virtual environment op og installerer pakkerne i app/requirements.txt og requirements-dev.txt
Quick start
Almindelige commands
- Start app'en:
python src/main.py
- Start app'en i docker container:
docker-compose up
- Unit tests:
pytest
- Unit tests med coverage
pytest --cov=src
- Lint:
flake8 --ignore=E501 src tests --show-source
Logning
- Logning til stdout, sat op i logging.py, kaldes i main
- Logning gøres med logger og ikke print() functionen
- Eksempel på brug af logger her, her og her
- Prometheus: eksempel på gauge her og brugt her
Database
Skriv til filer
- Hvis der skal skrives til filer skal det være på et eksternt mount
- Eksempel til at test lokalt docker-compose.yml
Kør kode på bestemt tidspunkt eller med interval
TODO
- deploy
- frontend - new template