Ist Django für mein Projekt geeignet?

Django, Flask, Bottle, WSGI, CGI…
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

__deets__ hat geschrieben: Montag 24. Januar 2022, 16:58 was fehlt ist, dir die Grundlagen durch zB ein Django-Tutorial drauf zu schaffen, um dafuer ein Gefuehl zu bekommen.
OK, da bin ich ja dran, ich wollte nur sicherstellen, dass ich, wenn ich mir das alles reingeschafft habe, nicht feststelle, dass das so alles nicht geht.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Pitwheazle: Da läuft kein durchgehendes Programm für jeden Nutzer. Die Webanwendung muss immer nur etwas tun wenn irgendein Benutzer etwas von ihr wissen will und/oder ihr Daten übergibt. Das ist eine Anfrage/Antwort Beziehung. Der Programmierer schreibt Code für eine Antwort auf eine Anfrage. In der Anfrage steckt dann beispielsweise auch drin wer das ist, damit man zuordnen kann was man über den Nutzer weiss, also welche Aufgaben zu ihm gehören, welche er schon gelöst hat, wie gut er die gelöst hat, und so weiter.

Sämtlicher Zustand der nicht bei den Anfrage/Antwort-Paaren ständig hin und her übertragen wird, landet in der Regel in der Datenbank auf dem Server. Die Frage ob das automatisch passiert, würde ich mit Jain beantworten. Nicht vollautomatisch das man einfach ein Programm schreibt wie man das bei einer Desktop-Anwendung machen würde, und der Zustand wird automagisch in einer Datenbank statt im Arbeitsspeicher persistiert, aber durch einen „object relational mapper“ (ORM) muss man nur für eher spezielle Sachen dann tatsächlich SQL für die Datenbank manuell schreiben. Und Django bringt ein ORM gleich mit.

Bezüglich auslagern von Code auf den Client: Das kann man für die Darstellung machen, also wenn es um Zeichnungen geht, die auf einem Canvas im Browser mit JavaScript und einer passenden Bibliothek gezeichnet werden, statt auf dem Server generiert zu werden, aber gerade so etwas wie das zufällige generieren von Aufgaben würde ich da nicht hin verschieben. Jedenfalls nicht wenn die bewertet werden und die Bewertung für irgendwas *zählt*. Man würde die Schüler ja auch nicht ihre Aufgaben selbst schreiben lassen. Irgendein Schüler kann dann JavaScript und hat komischerweise immer ganz leichte Aufgaben und 99% der Punkte bei solchen Aufgaben. 😎
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

__blackjack__ hat geschrieben: Montag 24. Januar 2022, 17:29 ..., aber durch einen „object relational mapper“ (ORM) muss man nur für eher spezielle Sachen dann tatsächlich SQL für die Datenbank manuell schreiben. Und Django bringt ein ORM gleich mit.
... das verstehe ich dann vielleicht auch irgendwann.
__blackjack__ hat geschrieben: Montag 24. Januar 2022, 17:29 aber gerade so etwas wie das zufällige generieren von Aufgaben würde ich da nicht hin verschieben.
... leuchtet ein und hatte ich auch nicht so geplant.
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

__blackjack__ hat geschrieben: Montag 24. Januar 2022, 17:29 ..., aber gerade so etwas wie das zufällige generieren von Aufgaben würde ich da nicht hin verschieben. Jedenfalls nicht wenn die bewertet werden und die Bewertung für irgendwas *zählt*. Man würde die Schüler ja auch nicht ihre Aufgaben selbst schreiben lassen. Irgendein Schüler kann dann JavaScript und hat komischerweise immer ganz leichte Aufgaben und 99% der Punkte bei solchen Aufgaben. 😎
Das fiel mir nach dem Schreiben auch auf, dass gerade diese Aufgabe nicht auf den Client gehört :D Man sollte über seine Beispiele etwas länger nachdenken.
Phitweazle hat geschrieben: Das fände ich natürlich riesig! Allerdings ist das, wie du dir denken kannst, noch ein weiter Weg für mich. Java Script kann ich auch nicht. Ich hatte gehofft, ohne auszukommen und wollte mal in svg reinschauen.
Hast du dir denn meinen Rechentrainer mal angesehen: https://medien.bildung.hessen.de/rechen ... index.html ?
Würde sagen, kurz reingeschaut. Ist ne riesige Arbeit, das hab ich zumindest gesehen. Um Javascript führt meiner Meinung nach kein Weg vorbei. SVG ist für viele Sachen geeignet, kann man per Javascript erzeugen ;-)
Allerdings gibt es für Diagramme, etc. fertige Bibliotheken (egal ob Javascript oder Python), das muss man nicht von Hand erzeugen. Ich hab ein ähnlich großes Projekt mit Django umgesetzt, 2013 begonnen, 2016 produktiven Einsatz gestartet und bis heute kommen regelmäßig neue Funktionen dazu. Will damit sagen, ja es dauert und ist ein weiter Weg...

Viele Grüße
Whitie
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

Whitie hat geschrieben: Montag 24. Januar 2022, 19:06 Ich hab ein ähnlich großes Projekt mit Django umgesetzt, 2013 begonnen, 2016 produktiven Einsatz gestartet und bis heute kommen regelmäßig neue Funktionen dazu. Will damit sagen, ja es dauert und ist ein weiter Weg...
Nicht nur, dass ich bisher wenig Ahnung von Django, HTML, CSS und Python habe - ich habe auch keine Ahnung, wie das Projekt, das ich da angehe, mal aussehen könnte. ... Du verstehst sicher, dass ich da schaurig gerne mal einen Blick auf dein Projekt werfen täte
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

Das kannst du dir gerne anschauen. Der Quellcode ist hier: https://github.com/Whitie/ChemManager
Ich glaube aber ohne Django zu kennen, bringt der Blick nicht viel. Das eigentliche Django-Projekt liegt im Unterordner chemman. Es ist ein Informationssystem für Chemikalien mit Lagerverwaltung inkl. Verwendungsnachweis für Gifte und CMR Substanzen. Man kann es allerdings nicht vernünftig ausprobieren wenn man es runterlädt, da viel Ersteinrichtung erforderlich ist.
Eine Demo mit unseren Daten wäre aber bestimmt mit etwas Vorbereitung machbar.

Viele Grüße
Whitie

P. S. Es ist übrigens aus der Not heraus entstanden, unser altes System war a) teuer, b) Schei... zu bedienen (Access basiert) und c) mit dem Wechsel auf Windows 10 nicht mehr lauffähig. Der Hersteller bot kein Update mehr an, nur noch Cloud-Abo.

Edit: Nicht wundern über die Daten bei Github. Ich habe das Projekt erst vor 3 Jahren auf Git umgestellt und dorthin umgezogen. Um einige Altlasten loszuwerden habe ich die alte Historie nicht mitgenommen und einfach neu eingecheckt. Die erste Version lief noch ohne Django ;-) Lang ist's her...
Benutzeravatar
Kebap
User
Beiträge: 686
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Ich denke, wenn der Rechentrainer ebenfalls als offene Software entwickelt wird, dann findet sich da wahrscheinlich der ein oder andere Interessent, der etwas daran mitzuwirken möchte. Mir geht es da ähnlich wie Whitie: Das Projekt scheint mir spannend, aber die Zeit ist rar. So ein Programm kann ja an vielen Schulen usw. eingesetzt werden, und wenn die professionellen Alternativen so kostenintensiv sind, scheint eine freie Lösung bemerkenswert.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

Pitwheazle hat geschrieben: Montag 24. Januar 2022, 19:57 Nicht nur, dass ich bisher wenig Ahnung von Django, HTML, CSS und Python habe - ich habe auch keine Ahnung, wie das Projekt, das ich da angehe, mal aussehen könnte.
Dass die Umsetzung möglich ist hatten dir ja jetzt schon viele bestätigt.
Es ist jetzt wahrscheinlich Zeit, einfach damit anzufangen. Es spricht nichts dagegen einfach mal auf dem eigenen Rechner eine Virtuelle Machine mit einer geeigneten Linux Distruibution aufzusetzen und die notwendigen Komponenten dazu zu installieren.
Das ist komplett kostenfrei, du kannst Fehler machen, ohne irgendwelche Konsequenzen zu fürchten, und du wirst schnell merken welches Wissen du dir als nächstes aneignen must um ans Ziel zu kommen.
Man kann heutzutage fast alles im Internet lesen und lernen. Nur die eigene Erfahrung muss man immer noch selbst machen.
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

Danke dafür!

Noch was: Ich bin es eigentlich gewöhnt, mittels eines gedruckten Buches zu lernen - möglichts analog, zum Blättern. Da habe ich aber bisher nichts Überzeugendes gefunden. Ich habe mich jetzt für einen Videokurs von Maximilian Schwarzmüller bei Udemy angemeldet (wen's interessiert: https://www.udemy.com/course/python-dja ... cal-guide/). Aber da kann man nicht blättern und muss mit der Geschwindigkeit arbeiten die vorgegeben ist. Wie habt ihr Django gelernt? Studium? Buch? VideoTutorium? Djangoproject.com?

Habt ihr einen Buchtipp? Ein deutschsprachiges Buch habe ich schon zurückgeschickt, (John Bach - Django-umfassender-Leitfaden-Entwickeln-Websites), ein derartig schlechtes Buch habe ich in meinem ganzen langen Leben noch nicht in der Hand gehabt! Die englischen Bücher haben auch nicht unbedingt gute Kritiken.
Benutzeravatar
Kebap
User
Beiträge: 686
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Ich mag djangogirls.org aber das ist auch nicht zum Blättern und wohl letztendlich Geschmackssache
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

Ja, da war ich auch schon ... aber halt auch nicht zum Blättern ... und das ist halt blöd, wenn man ein anderes Projekt als das Vorgestellte vorhat.
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich halte das fuer aussichtslos. Die Projekte bewegen sich viel zu schnell, da bekommst du ein Buch was wahlweise veraltet, oberflaechlich, und am aller ehesten beides ist. Python selbst kann man per Buch lernen. Solche Frameworks eher nein. Vor allem, weil die im Verhaeltnis immer noch klein sind, anders als so Mega-Technologien wie Angular oder React.
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

Daher die schlechten Kritiken

Und zurück zur Frage: Wie habt ihr das gelernt?
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Durch online-Tutorials, und eben machen.
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

Spannende nächste Frage: woher haben die Macher der Tutorials ihr Wissen? Da bleibt ja nur noch "djangoproject.com"
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Irgendwer hat auch mal das Rad erfunden, mit der LKW ausgestattet wurde, in dem Erz war, aus dem das Kupfer wurde, mit dem die Platinen beschichtet wurden, aus denen die Server-Mainboards bestehen, die in den Rechenzentren stehen...
nezzcarth
User
Beiträge: 1632
Registriert: Samstag 16. April 2011, 12:47

Pitwheazle hat geschrieben: Dienstag 25. Januar 2022, 17:34 Spannende nächste Frage: woher haben die Macher der Tutorials ihr Wissen? Da bleibt ja nur noch "djangoproject.com"
Ich kann allen Einsteigenden eigentlich immer nur empfehlen, die offiziellen Tutorials auf der Python-Website sowie auf der Django Website aktiv durchzuarbeiten. Also live am Computer, mit einem offenen Python-Interpreter wo man sofort die Beispiele ausprobiert und variiert (beim Python-Tutorial), bzw. mit offener Shell und offenem Text-Editor beim Django-Tutorial. Aufbauend darauf kann man dann zum Beispiel die empfohlenen oder das Tutorial vom Mozilla Development Network durcharbeiten (https://developer.mozilla.org/en-US/doc ... ide/Django). Gerade das MDN bietet sich auch darüber hinaus als sehr wertvolle Ressource für alle Fragen der Web Entwicklung an. Ja, in den Tutorials geht es um andere Projekte als Beispiel. Aber das ist doch nicht schlimm. So und so würde ich, wenn noch gar keine Erfahrung vorliegt, mit etwas kleinerem zum Einstieg anfangen. Warum also nicht mit den Sachen aus den Tutorials?

Das einzige Django-Buch, das ich empfehlen kann, ist "Two Scoops of Django" (https://www.feldroy.com/books/two-scoops-of-django-3-x). Das ist aber kein Lehrbuch sondern eher eine Materialsammlung für Leute, die Django schon beherrschen und professionelle Anwendungen schreiben wollen.
Zuletzt geändert von nezzcarth am Dienstag 25. Januar 2022, 19:16, insgesamt 1-mal geändert.
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

Klar, das ist schon in Ordnung, dass in den Tutorien andere Projekte entwickelt werden. Wenn ich aber andere Ideen ausprobiere, wäre es halt schön gewesen ein Buch zu haben in dem man die entsprechenden Kapitel raussuchen kann. Da ist in den Videotutorien halt recht schwierig die richtigen Stellen zu finden.
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

Ich habe Django nur aus Internetquellen gelernt. Ist schon länger her, da gab es keine Bücher zu dem Thema, Django war noch nicht bei Version 1.0 angekommen. Angewöhnt habe ich mir in den letzten Jahren, neue Techniken bzw. Bibliotheken (umfangreiche) in kleineren eigenen Projekten zu lernen. Z. B. möchte ich demnächst ein modernes Frontend für ein ganz altes Django-Projekt machen. In die engere Wahl kamen mithril.js und Vue.js. Also habe ich mit mithril.js einen simplen Blog geschrieben und mit Vue.js ein ganz einfaches Forum. Meistens werden diese Klein-Projekte nicht fertig, weil ich irgendwann weiß, ob ich die Technik benutzen möchte oder auch nicht.
Mach das Python und dann das Django Tutorial und dann mach eine eigene Seite, die ein paar Aufgaben generiert, die Ergebnisse vom Benutzer abfragt, diese prüft und dann die Auswertung anzeigt. Dann entscheide, wie es weitergeht...

Viele Grüße
Whitie
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Ich bevorzuge auch eher die analoge Lernform, bei der sich noch blättern lässt. Bei Büchern ist es im Vorhinein viel einfacher herauszufinden, ob die was taugen. Bei Videos ist das aufwendiger und kostet viel Zeit. Und da heute jeder im Netz alles publizieren kann, ist da auch viel Mist dabei. Wie Whitie habe auch ich mit django < 1.0 begonnen, als das für den Einstieg noch etwas überschaubarer war. Anschließen möchte ich mich nezzcarths Empfehlung; ich halte das für den besten Einstieg in django. In der IT veralten Informationen viel zu schnell, als das sich Bücher noch lohnen würden (mit Ausnahme der Basis).
Antworten