Erstellen Sie einen HTML-Kalender in Python dynamisch

click fraud protection

Pythons Kalender Modul ist Teil der Standardbibliothek. Es ermöglicht die Ausgabe eines Kalenders nach Monat oder Jahr und bietet auch andere kalenderbezogene Funktionen.

Das Kalender Das Modul selbst hängt vom Datum / Uhrzeit-Modul ab. Aber wir werden auch brauchen Terminzeit für unsere eigenen Zwecke später, daher ist es am besten, beide zu importieren. Außerdem benötigen wir die, um einige Zeichenfolgen aufzuteilen Re Modul. Importieren wir sie alle auf einmal.

Standardmäßig beginnen die Kalender die Woche gemäß europäischer Konvention mit Montag (Tag 0) und enden mit Sonntag (Tag 6). Wenn Sie den Sonntag als ersten Tag der Woche bevorzugen, verwenden Sie die setfirstweekday () Methode zum Ändern der Standardeinstellung auf Tag 6 wie folgt:

Um zwischen den beiden umzuschalten, können Sie den ersten Tag der Woche als Argument mit der Taste übergeben sys Modul. Sie würden dann den Wert mit einem überprüfen wenn Anweisung und setzen Sie die setfirstweekday () Methode entsprechend.

In unserem Kalender wäre es schön, eine Kopfzeile für den Kalender zu haben, die so etwas wie "Ein Python-generierter Kalender für ..." lautet und den aktuellen Monat und das aktuelle Jahr enthält. Dazu müssen wir den Monat und das Jahr aus dem System abrufen. Diese Funktionalität ist etwas, das

instagram viewer
Kalender bietet, Python kann den Monat und das Jahr abrufen. Aber wir haben immer noch ein Problem. Da alle Systemdaten numerisch sind und keine nicht abgekürzten oder nicht numerischen Formen der Monate enthalten, benötigen wir eine Liste dieser Monate. Geben Sie die Liste ein Jahr.

Wenn wir nun die Nummer eines Monats erhalten, können wir auf diese Nummer (minus eins) in der Liste zugreifen und den vollständigen Monatsnamen abrufen.

Seltsamerweise die Terminzeit Modul hat eine Terminzeit Klasse. Aus dieser Klasse nennen wir zwei Objekte: jetzt() und Datum(). Die Methode datetime.datetime.now () Gibt ein Objekt zurück, das die folgenden Informationen enthält: Jahr, Monat, Datum, Stunde, Minute, Sekunde und Mikrosekunden. Natürlich brauchen wir keine Zeitinformationen. Um nur die Datumsinformationen zu ermitteln, geben wir die Ergebnisse von weiter jetzt() zu datetime.datetime.date () als Argument. Das Ergebnis ist das heute Enthält jetzt das Jahr, den Monat und das Datum, die durch Bindestriche getrennt sind.

Um dieses Datenbit in besser verwaltbare Teile zu zerlegen, müssen wir es aufteilen. Wir können dann die Teile den Variablen zuordnen current_yr, aktueller Monat, und heutige Tag beziehungsweise.

Um die erste Zeile dieses Codes zu verstehen, arbeiten Sie von rechts nach links und von innen nach außen. Zuerst stringifizieren wir das Objekt heute um es als String zu bearbeiten. Dann teilen wir es mit dem Em-Bindestrich als Trennzeichen oder Token. Schließlich weisen wir diese drei Werte als Liste 'aktuell' zu.

Um mit diesen Werten deutlicher umzugehen und den Langnamen des aktuellen Monats aus zu nennen Jahr, wir weisen die Nummer des Monats zu current_no. Wir können dann ein bisschen im Index von subtrahieren Jahr und weisen Sie den Monatsnamen zu aktueller Monat.

In der nächsten Zeile ist ein wenig Substitution erforderlich. Das Datum, von dem zurückgegeben wird Terminzeit ist selbst für die ersten neun Tage des Monats ein zweistelliger Wert. Eine Null fungiert als Platzhalter, aber wir möchten, dass unser Kalender nur eine einzige Ziffer hat. Wir ersetzen also keine Null für jede Null, die eine Zeichenfolge beginnt (daher '\ A'). Schließlich weisen wir das Jahr zu current_yrund konvertiert es auf dem Weg in eine Ganzzahl.

Methoden, die wir später aufrufen werden, erfordern eine Eingabe im Ganzzahlformat. Daher ist es wichtig sicherzustellen, dass alle Datumsdaten in Ganzzahl- und nicht in Zeichenfolgenform gespeichert werden.

Bevor wir den Kalender drucken, müssen wir den druckenHTML Präambel und CSS-Layout für unseren Kalender. Auf dieser Seite finden Sie den Code zum Drucken der CSS- und HTML-Präambel für den Kalender. und kopieren Sie den Code in Ihre Programmdatei. Das CSS im HTML-Code dieser Datei folgt der Vorlage von Jennifer Kyrnin, About's Guide to Web Design. Wenn Sie diesen Teil des Codes nicht verstehen, können Sie ihre Hilfe zum Erlernen von CSS und HTML konsultieren. Um den Monatsnamen anzupassen, benötigen wir die folgende Zeile:

Nachdem das Grundlayout ausgegeben wurde, können wir den Kalender selbst einrichten. Ein Kalender ist im Grunde genommen eine Tabelle. Erstellen wir also eine Tabelle in unserem HTML:

Jetzt müssen wir den eigentlichen Kalender erstellen. Um die tatsächlichen Kalenderdaten zu erhalten, benötigen wir die Kalender Module Monatskalender () Methode. Diese Methode verwendet zwei Argumente: das Jahr und den Monat des gewünschten Kalenders (beide in ganzzahliger Form). Es wird eine Liste zurückgegeben, die Listen mit den Daten des Monats pro Woche enthält. Wenn wir also die Anzahl der Artikel im zurückgegebenen Wert zählen, haben wir die Anzahl der Wochen im angegebenen Monat.

Wenn wir die Anzahl der Wochen im Monat kennen, können wir eine erstellen zum Schleife, die durch a zählt Angebot() von 0 bis zur Anzahl der Wochen. Dabei wird der Rest des Kalenders ausgedruckt.

Nachdem dieser Bereich gestartet wurde, werden die Wochentage ausgewählt Monat entsprechend dem Wert des Zählers und zugeordnet Woche. Anschließend wird eine tabellarische Zeile mit den Kalenderdaten erstellt.

EIN zum Die Schleife geht dann durch die Wochentage, damit sie analysiert werden können. Das Kalender Das Modul gibt für jedes Datum in der Tabelle, das keinen gültigen Wert hat, eine '0' aus. Ein leerer Wert würde für unsere Zwecke besser funktionieren, daher drucken wir die Buchstützen mit Tabellendaten ohne einen Wert für diese Daten.

Wenn der Tag der aktuelle ist, sollten wir ihn als nächstes irgendwie hervorheben. Basierend auf td Klasse heuteDas CSS dieser Seite bewirkt, dass das aktuelle Datum vor einem dunklen Hintergrund anstelle des hellen Hintergrunds der anderen Daten gerendert wird.

Wenn das Datum ein gültiger Wert ist und nicht das aktuelle Datum, wird es als tabellarische Daten gedruckt. Die genauen Farbkombinationen für diese sind in der Präambel im CSS-Stil enthalten.

Nur dieser einfache Kalender kann auf jede Weise verwendet werden, die eine Kalenderdarstellung erfordert. Durch Hyperlinks der Daten im HTML-Code kann auf einfache Weise eine Tagebuchfunktion erstellt werden. Alternativ kann man anhand einer Tagebuchdatei prüfen, welche Daten anhand ihrer Farbe aufgenommen wurden. Oder wenn man dieses Programm in ein CGI-Skript konvertiert, kann man es im laufenden Betrieb generieren lassen.

instagram story viewer