Seite 19 von 20

Re: Ist Django für mein Projekt geeignet?

Verfasst: Mittwoch 13. Juli 2022, 18:46
von Pitwheazle
Danke!

Code: Alles auswählen

protokoll.filter(start__date=datetime.date.today())
funktioniert nicht, aber

Code: Alles auswählen

protokoll.filter(start__date = date.today())
Aber

Code: Alles auswählen

protokoll.filter(start__startswith = date.today())
kann ich mglicherweise benutzen, wenn ich rausbekomme, wie man von "today" 7 Tage zurückrechnet (für die Wochenaufgaben)

Re: Ist Django für mein Projekt geeignet?

Verfasst: Mittwoch 13. Juli 2022, 18:56
von noisefloor
Hallo,
kann ich mglicherweise benutzen, wenn ich rausbekomme, wie man von "today" 7 Tage zurückrechnet (für die Wochenaufgaben)
Nee. __startswith macht einen Vergleich aus Strings - du willst aber Date- oder DateTime Objekte vergleichen. Wenn du eine Datumsspanne abfragen willst, dann mit __gt (oder __gte) und __lt (oder __lte).

Beispiele dazu findest du auch auf der Seite, die ich dir im vorherigen Post verlinkt habe.

Gruß, noisefloor

Re: Ist Django für mein Projekt geeignet?

Verfasst: Mittwoch 13. Juli 2022, 19:08
von Pitwheazle
OK, nochmals Danke, habe ich geändert.

Ich habe es aber gerade ausprobiert:

Code: Alles auswählen

            elif filter == "Woche":
                protokoll =  protokoll.filter(start__startswith = date.today() - timedelta(days = 7))
funktioniert anscheinend auch.

Re: Ist Django für mein Projekt geeignet?

Verfasst: Mittwoch 13. Juli 2022, 19:13
von __blackjack__
@Pitwheazle: Nicht alles was funktioniert, funktioniert auch wirklich. Wenn Du bei SQLite bleibst und es niemals einen Grund geben wird auch mal eine ”richtige” Datenbank zu verwenden, die Datumsangaben nicht mit Zeichenkettenoperationen verarbeiten kann, dann kannst Du das natürlich machen. Unschön ist es trotzdem weil fremde Leser verwirrt sind, und überzeugt sein werden, dass das nicht funktionieren kann.

Re: Ist Django für mein Projekt geeignet?

Verfasst: Mittwoch 13. Juli 2022, 22:03
von Pitwheazle
Guter Hinweis - ich habe es ja aber schon entsprechend geändert.

Re: Ist Django für mein Projekt geeignet?

Verfasst: Mittwoch 27. September 2023, 15:29
von Pitwheazle
Hallo Leute, dieses Posting ist mir gerade "in die Hände gefallen" und ich habe mal einige eurer Tipps gelesen und wollte auf diesem Wege mal wieder allen danken. (wer auch immer das Posting noch aboniert hat). Ohne eure Hilfe hätte ich keinerlei Chancen gehabt den Rechentrainer zum Laufen zu bringen. Vor allem ohne @whitie s Grundgerüst.
Aber jetzt läuft der Rechentrainer schon ganz gut und langsam habe ich schon etwas Angst vor dem Erfolg. Zurzeit sind 572 Nutzer angemeldet und die Kids scheinen Tag und Nacht zu rechnen. Sie haben jetzt 57456 Aufgaben gerechnet - das heißt, meine Tabelle "Protokoll" hat schon mehr als 57500 Einträge. Das alles in etwa 4 Wochen. Wird das irgendwann zu groß?
Und noch eine Frage: Die Kids rechnen Tag und Nacht - auch wenn ich Sonntags um Halb Elf Uhr nachts nachschaue wird noch gerechnet. Kann ich im laufenden Betrieb neuen Code hochladen oder muss ich da jeweils den Server anhalten? Leider habe ich keine Ahnung, wie ich in der Zeit, in der ich den Server anhalte eine individuelle Nachricht einstellen kann.

Re: Ist Django für mein Projekt geeignet?

Verfasst: Mittwoch 27. September 2023, 17:01
von nezzcarth
Das hängt stark von der Umgebung ab, die du verwendest, um deine Anwendung bereitzustellen. Kannst du bitte noch mal kurz sagen, wie dein Deployment-Setup ist?

Re: Ist Django für mein Projekt geeignet?

Verfasst: Mittwoch 27. September 2023, 21:22
von Pitwheazle
Denkt dran: ich bin Dummie - was ist ein deplayment setup? Mein Rechentrainer ist auf uberspace gehostet und benutzt SQLite?

Re: Ist Django für mein Projekt geeignet?

Verfasst: Donnerstag 28. September 2023, 08:15
von Kebap
Auch Dummies können Google benutzen, wenn sie einen Fachbegriff finden.

Hier kann man mit 2-3 Minuten quer lesen schon ein gutes Gefühl entwickeln, was alles dazu gehören kann:
https://de.wikipedia.org/wiki/Softwareverteilung

Natürlich wirst du als ehrenamtlicher Einzelkämpfer nicht die Ressourcen besitzen wie ein globaler Konzern.
Dennoch lohnt es sich, darüber nachzudenken, wie man sich die Arbeitsvorgänge einfach handhabbar macht.

Üblicherweise gibt es zwei (oder drei) ähnliche Server, so dass du nicht am "offenen Herzen operieren" musst.
Neuen Code würdest du so erstmal auf einen Testserver laden, in dem du nach Lust und Laune die Dinge ausprobieren und kaputt machen kannst, ohne dass deine echten Anwender auf dem produktiven Server überhaupt eine Änderung mitbekommen. Sobald der Code dann tut, wie er soll, darf er (erst noch auf den zweiten Testserver zur Abschlusskontrolle oder direkt) live gehen.
Den Server anhalten finde ich eher ungewöhnlich, aber selbst wenn es für neuen Code nötig wäre, ist das Anhalten nicht das Hauptrisiko, sondern dass dein Code nicht funktionieren könnte und versehentlich einzelne Funktionen für den Anwender zersägt, sobald der Server wieder weiterlaufen darf.

Re: Ist Django für mein Projekt geeignet?

Verfasst: Freitag 6. Oktober 2023, 12:04
von Pitwheazle
Kebap hat geschrieben: Donnerstag 28. September 2023, 08:15 Auch Dummies können Google benutzen, wenn sie einen Fachbegriff finden.

Hier kann man mit 2-3 Minuten quer lesen schon ein gutes Gefühl entwickeln, was alles dazu gehören kann:
https://de.wikipedia.org/wiki/Softwareverteilung
Danke dafür, das beantwortet meine Frage nicht ganz. Und natürlich lade ich keine Änderungen hoch, ohne sie getestet zu haben.
Ich versetze mich nur in die Lage der armen CPU: Da muss ich für 5 User gleichzeitig Aufgaben erstellen und gleichzeitig die Aufgaben von 5 weiteren Usern kontrollieren - mit dem gleichen Code. Und dann kommt der Programmierer und schiebt, während ich mich konzentriere, nochmal ein paar Zeilen Code dazu oder ändert gar einen Eintrag - da muss ich doch als CPU durcheinanderkommen!

Re: Ist Django für mein Projekt geeignet?

Verfasst: Freitag 6. Oktober 2023, 12:15
von sparrow
Du schreibst hier immer so viel von der CPU, die muss es dir wirklich angetan haben.

Man kann keine Zeilen Code nachschieben. Auf dem Server laufen Prozesse. Die werden beendet und neue Prozesse gestartet.

Re: Ist Django für mein Projekt geeignet?

Verfasst: Freitag 6. Oktober 2023, 12:30
von Pitwheazle
Whitie hat geschrieben: Dienstag 8. Februar 2022, 15:20 Bei deinen zu erwartenden Nutzerzahlen ist Sqlite dann auch nicht mehr angesagt. Das lässt sich aber später leicht umstellen.
Viele Grüße
Whitie
Hallo @Whitie: Wenn du das hier noch liest: Könntest du das jetzt bitte nochmals erklären?
Ich hatte, auch aufgrund dieser Aussage; mein Projekt nicht bei Pythonanywhere sondern bei uberspace gehostet, da ich das dort, so erinnere ich mich, umstellen, oder einfacher umstellen, kann.

Re: Ist Django für mein Projekt geeignet?

Verfasst: Freitag 6. Oktober 2023, 12:36
von Pitwheazle
sparrow hat geschrieben: Freitag 6. Oktober 2023, 12:15 Auf dem Server laufen Prozesse. Die werden beendet und neue Prozesse gestartet.
Wie muss ich mir den so einen Prozess vorstellen?
Wie ist der jeweils mit meinem Code verknüpft?
Enthält jeder Prozess eine Kopie meines Codes?

Re: Ist Django für mein Projekt geeignet?

Verfasst: Freitag 6. Oktober 2023, 13:08
von noisefloor
Hallo,

im einfachsten Fall startest einen Python-Interpreter, in dem dein Code läuft. Das ist dein Prozess. So ist das z.B., wenn du `python manage.py runserver` beim Entwickeln deiner Applikation ausführst. Da du aber - richtigerweise - einen WSGI-Applikationsserver laufen hast, startet der in der Regel mehrere Worker-Prozesse. Dann hast du z.B. dein Programm 4x unabhängig parallel laufen. Wie die CPU das intern macht, also z.B. auf welchem Kern welcher Prozess läuft, ist für dich total egal.

Bei Python kann man im laufenden Prozess keinen Code austauschen. D.h. wenn du ein Update machst musst du in der Regel alle Prozesse = den WSGI Applikationsserver stoppen, den neuen Code hochladen und dann den WSGI Applikationsserver neu starten.

SQLite kann schon mit Million von Datensätzen umgehen. SQLite kann nur nicht mit parallelen Schreibzugriffen umgehen. Im Sinne von: technisch nicht möglich. D.h. wenn deine Nutzerzahlen mal steigen und immer mehr Ergebnisse gleichzeitig in die DB geschrieben werden müssen, könnte SQLite irgendwann der Bottleneck werden. Wann: keine Ahnung.

Die Umstellung auf z.B. PostgreSQL ist seitens Django ja ganz einfach, muss du nur in der config.py hinterlegen. Datenmigration von SQLite -> PostgreSQL geht bestimmt auch - habe ich aber keine Praxiserfahrung.

Gruß, noisefloor

Re: Ist Django für mein Projekt geeignet?

Verfasst: Freitag 6. Oktober 2023, 13:17
von Pitwheazle
noisefloor hat geschrieben: Freitag 6. Oktober 2023, 13:08 ... Da du aber - richtigerweise - einen WSGI-Applikationsserver laufen hast, startet der in der Regel mehrere Worker-Prozesse. Dann hast du z.B. dein Programm 4x unabhängig parallel laufen. Wie die CPU das intern macht, also z.B. auf welchem Kern welcher Prozess läuft, ist für dich total egal.
OK, das ist hilfreich.
noisefloor hat geschrieben: Freitag 6. Oktober 2023, 13:08 Bei Python kann man im laufenden Prozess keinen Code austauschen. D.h. wenn du ein Update machst musst du in der Regel alle Prozesse = den WSGI Applikationsserver stoppen, den neuen Code hochladen und dann den WSGI Applikationsserver neu starten.
Kebap hat geschrieben: Donnerstag 28. September 2023, 08:15 Den Server anhalten finde ich eher ungewöhnlich ...
Also ich habe jetzt schon mehrmals im laufenden Betrieb mittels Filezilla eine view durch eine geänderte view ersetzt und konnte keine Probleme erkennen.

Re: Ist Django für mein Projekt geeignet?

Verfasst: Freitag 6. Oktober 2023, 15:27
von noisefloor
Hallo,
Also ich habe jetzt schon mehrmals im laufenden Betrieb mittels Filezilla eine view durch eine geänderte view ersetzt und konnte keine Probleme erkennen.
Einen view = du hast die Datei view.py ausgetauscht?

Du benutzt auf dem produktiven Server bei Uberspace aber schon einen WSGI-Applikationsserver wie Gunicorn und nicht den eingebauten Server von Django, richtig?

Gruß, noisefloor

Re: Ist Django für mein Projekt geeignet?

Verfasst: Freitag 6. Oktober 2023, 15:29
von Pitwheazle
Ja, ich nutze Gunicorn. Das mit WSGI hat mir ein netter Mensch von Uberspace gemacht.
Und nochmals ja - ich habe die view.py einfach hochgeladen und dabei die alte jeweils
überschrieben.

Re: Ist Django für mein Projekt geeignet?

Verfasst: Freitag 2. Februar 2024, 12:32
von Kebap
Ich bin leider kein Django Experte, aber ich vermute mal, dass der Python Prozess, dann einfach zur Laufzeit prüft, also wenn jemand eine konkrete Seite anfordert, dann wird die view.py Seite gelesen und eine entsprechende Antwort zusammengebastelt und zurückgeschickt. Das Ergebnis ist, dass du die Datei austauschen kannst, und bei der nächsten Anforderung die neue Datei für die Antwort herangezogen wird, ohne dass der Prozess neu gestartet werden muss. Das wäre relativ schlau gemacht. Nur wenn eine Anfrage genau in dem Augenblick kommt, in dem du gerade die Datei austauschst, dann enthält die Antwort vielleicht eine Fehlermeldung. Aber wie gesagt, ich vermute nur, durch dein beschriebenes Verhalten, wie es wohl intern funktionieren könnte.

Re: Ist Django für mein Projekt geeignet?

Verfasst: Freitag 2. Februar 2024, 13:21
von sparrow
@Kebap: die views.py ist ein Modul. Wird also importiert. Da wird nichts dynamisch bei Leder Aufruf geladen.

Re: Ist Django für mein Projekt geeignet?

Verfasst: Freitag 2. Februar 2024, 15:20
von Kebap
@sparrow: Wie erklärst du dann dieses Verhalten?
Also ich habe jetzt schon mehrmals im laufenden Betrieb mittels Filezilla eine view durch eine geänderte view ersetzt und konnte keine Probleme erkennen.