Grundsatzfragen zum Einsatzgebiet von Python / Django

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
gospat83
User
Beiträge: 3
Registriert: Dienstag 21. September 2021, 14:25

Hallo zusammen,

ich bin von Beruf Diplom-Wirtschaftsinformatiker und möchte mich gerne privat mit einer kleinen Programmieraufgabe beschäftigen. Meine Programmiererfahrung ist zwar eher gering, aber ich bringe mir immer wieder gerne selber neue Dinge bei.

Nun zu meiner Idee. Ich mache Personal Training im Fitnessstudio. Zum Erfassen der Anzahl der Übungssätze und der verwendeten Gewichte etc. benutzt mein Trainer bisher eine Excel Tabelle mit zahlreichen Formeln. Diese Excel Tabelle liegt wiederum in seinem Dropbox Account. Ich dachte mir, dass es doch eine tolle Idee wäre eine Webapp für diesen Zweck zu programmieren. Die Frage ist nun allerdings, ob Python (ggf. in Verbindung mit Django) eine gute Wahl dafür ist.

Folgende "Basis-Funktionalitäten" stelle ich mir vor.
  • User Login (ggf. User Registrierung)
  • Datenbankanbindung zum Abrufen und Speichern der Daten
  • Ansprechende GUI mit Aufbereitung der Daten in Diagrammen
Mit Datenbanken kenne ich mich sehr gut aus, die nutze ich täglich auf der Arbeit (SQL Abfragen erstellen, Verbindungen einrichten...). Für die GUI bräuchte ich wohl HTML und CSS, das wäre auch kein Problem.

Kann man mein Vorhaben gut mit Python umsetzen? Brauche ich dafür zwangsweise Django bzw. was sind die Vorteile von Django? Gibt es irgendwo eine gute Dokumentation zu Django?

Viele Grüße
gospat83
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

das geht mit Python, wenn du ein Webframework verwendest. Es gibt zwei vielgenutzte: Django und Flask. Django hat die "batteries included" Philosophie, Flask ist ein Microframework, was modular erweiterbar ist (mit allen entsprechenden Vor- und Nachteilen).

Im gegebenen Fall würde ich Django vorziehen, weil das OOTB alles hat, was du brauchst: ORM für die Datenbankanbindung, ein Form-Framework für (Web-) Formulare, eine Authentifizierungsframework, ein Admin-Backend für die Datenbank etc.

Für Django gibt es zwei sehr gute Tutorials: das offiziellen Tutorial von Django-Projekt, zu finden auf deren Webseite, und "Django for Girls" (können auch Boys bedenkenlos lesen).

Du musst hat noch bedenken, dass du einen Server brauchst, um deine Applikation später auszuliefern. Der Server kann dabei auch ein normaler Computer oder ein Rapsberry Pi sein oder halt ein "richtiger", ggf. gemanagter Server bei einem Hoster. Kommt halt drauf an, wo wann wie und von wem die Applikation später aufrufbar sein soll. In dem Zuge musst du dir dann auch quasi zwangsläufig Gedanken über eine Backupstrategie machen, falls der Server mal "abraucht".
Entwickeln kannst du deine Applikation auf jedem Rechner, auf dem Python läuft und Python-Module (wie Django) via pip installierbar sind.

Gruß, noisefloor
gospat83
User
Beiträge: 3
Registriert: Dienstag 21. September 2021, 14:25

Alles klar, danke dir. Das klingt ja schon mal gut. Ich habe eh ein Webhosting Paket mit 3 Domänen, das sollte ja dann kein Problem sein. Notfalls könnte ich auch meinen Pi nehmen. Dann werde ich mich mal in den nächsten Tag in Python einarbeiten.
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Ich habe eh ein Webhosting Paket mit 3 Domänen, das sollte ja dann kein Problem sein.
Python Webapplikaiionen werden i.d.R. über einen WSGI-Applikationsserver (wie Gunicorn oder uwsgi) ausgeliefert und davor kann noch eine Reverse Proxy (wie nginx als Reverse Proxy) sitzen. Klingt kompliziert, ist es aber nicht. "Normaler" Webspace gibt das oft nicht her.

Gruß, noisefloor
gospat83
User
Beiträge: 3
Registriert: Dienstag 21. September 2021, 14:25

Ok, wieder etwas dazu gelernt. Mein Hosting Anbieter contabo soll grundsätzlich gut geeignet für Webapps mit Python sein. Wahrscheinlich muss ich nur ein kleineres Paket dazu buchen. Danke dir für die Aufklärung
Antworten