3.5 KiB
3.5 KiB
Case-Study
Ausgangslage
- Webshop erstellen
- Währungsumrechnung CHF zu …
- Freie Software in Bezug auf Open-Source Code.
Vision
Die Vision wurde anhand eines Mindmaps erstmals grob umfasst:
Vision - Artikel
Vision - Warenkorb
Varianten
C# und SQL Server
Laravel und MySQL
Django und MariaDB
Kriterien
- Freie Software
- Cross Plattform nutzbar
- Lesbarkeit des Codes
- Einfachheit des Setups
- Ohne spezielle Tools nutzbar
- Vorkenntnisse und Lernfaktor
Vergleich
Variante | Erreichte Punktzahl von 235 |
ASP.NET und SQL Server | 141 |
PHP und MySQL | 161 |
Django und MariaDB | 196 |
Kosten
Laravel Webshop
Sprache | Codezeilen |
---|---|
PHP | 8679 |
Total | 8679 |
Django Webshop
Sprache | Codezeilen |
---|---|
Python | 1460 |
SQL | 4639 |
Total | 6099 |
Vorgehen
Currencies - App
- Wurde in Django als eigenen App entwickelt und sollte daher problemlos in andere Applikationen eingebunden werden können.
- Die Quelle der Währungen ist die Schweizerische Nationalbank mit der URL:
Currencies - Quelle
Currencies - Parsing
- Das Konvertieren des XML's wurde mit Python eigener Module gemacht.
- für das Herunterladen des XML's wurde das Modul 'urllib' verwendet (1)
- für das Parsen über die einzelnen items/nodes das Modul xml.etree.ElementTree. (2)
(1) https://docs.python.org/2/library/urllib.html (2) https://docs.python.org/2/library/xml.etree.elementtree.html
Currencies - Ablauf
Infrastruktur
Andreas erzählt wie die infrastruktur aufgebaut ist.
Programmierung
vieleicht zwei Schwierigkeiten
Programmierung - Hürde #1
- Django hat ein modul das die Forms speziell handelt so dass man mit wehnig Code
Einen HTML Button oder ein Feld erzeugen kann.
- Die schwierigkeit war nun heraus zu finden wie man dem Feld ein von der DB stammenden
default wert mitgeben konnte.
- Es stellte sich heraus dass das Feld ein Key: Value paar benötigte um zu wissen wohin es
den wert schreiben soll….
Note: hier den code higlighter einfügen: amount_form = CartForm( initial={'amount_form': cart_position.amount} )
Fazit
special thanks to:
- draw.io,
- Python,
- Django,
- stackexchange and
- Beer.