Python

Projekt: Entwicklung einer Website mit Django (Python) und Deployment auf AWS

Bisher hatte ich Python nur für Data Science/Machine Learning, Web Scraping und Automatisierungsaufgaben (z. B. Excel) genutzt. Wegen Vorkenntnissen in HTML, CSS und JavaScript war es nun aber naheliegend, sich auch mit Python für Web Development zu beschäftigen. Ich wollte aber nicht nur eine “Hello World” Website programmieren, sondern etwas potenziell nützliches bauen. So war meine Idee eine Website mit Blog und Online-Tools wie z. B. einem Wörterzähler zu entwickeln.

Eingesetzte Technologien

Django: Python bietet zwei bedeutende Web Frameworks: Flask und Django. Flask ist leichtgewichtig und einfach zu erlernen. Es eignet sich gut für statische Websites oder Microservices. Django ist nicht leichtgewichtig und schwerer zu erlernen. Allerdings geht die Komplexität von Django einher mit umfassenden Funktionen/Werkzeugen, welche den Entwicklern mitgegeben werden. Als Beispiele dienen der Admin-Bereich oder der Object-Relational-Mapper (ORM) für die Website-Datenbank. Bei meiner Website sollte es sich um eine dynamische Website mit Datenbank hinterlegt handeln, sodass ich mich für Djang entschieden habe.

HTML: Wer eine Website mit einem Web Framework und nicht mit einem CMS erstellen möchte, kommt nicht dabei herum eigenes HTML zu schreiben. Allerdings kann man sich die mühsame und redundante Arbeit erleichtern, indem man ein Front-End Toolkit verwendet.

Bootstrap: Hierbei handelt es sich um das am weitesten verbreitete Front-End Toolkit. Es bietet nicht nur umfassende Styling Möglichkeiten mit CSS-Klassen sondern auch HTML Vorlagen für gängige Website-Elemente wie z. B. die Navigation.

CSS: Bootstrap dient als guter Startpunkt für das eigene Projekt. Allerdings sind immer auch eigene Anpassungen mit CSS notwendig, um die eigene Design Vorstellungen zu realisieren.

JavaScript: Die clientseitige Programmiersprache war unter anderem notwendig für Cookie-Banner und Google-Analytics. Allerdings wurde sie auch für den Wörter- bzw. Zeichenzähler verwendet, weil diese Aufgabe locker in jedem Browser durchgeführt werden kann.

Ubuntu auf AWS EC2: Die Website wurde auf einer EC2 Instanz mit Ubuntu bereitgestellt. Diese Linux Distribution eignet sich hervorragend für das Hosting von Websites. AWS ermöglicht die einfache und kostengünstige Nutzung von Infrastruktur als Service (IaaS). Bei Bedarf kann die Anwendung somit leicht skaliert werden.

Domain: Die Domain toolpy.de wurde über AWS registriert und eine entsprechende gehostete Zone für das DNS eingerichtet.

Apache 2: Als Webserver wird die wohl bekannteste Open Source Lösung von Apache eingesetzt.

Fazit

Ich bin mit dem Projektergebnis sehr zufrieden. Sowohl der Blog als auch der Wörterzähler konnten mit Django komfortabel umgesetzt werden. Das Deployment auf AWS hat auch ohne größere Probleme funktioniert. Sowohl die Entwicklung als auch das Deployment waren insgesamt sehr lehrreich. Im Vergleich zu WordPress erfordert die Erstellung einer Website mit Django mehr technisches Fachwissen und manuellen Aufwand. Dafür ist man unabhängig von Plugin/Theme Entwicklern und die Websitegeschwindigkeit ist deutlich erhöht.

Bewerte diesen Post!
[Gesamt: 4 Durchschnitt: 4.5]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.