Utwórz kalendarz HTML w Pythonie Dynamicznie

Python's kalendarz moduł jest częścią standardowej biblioteki. Umożliwia generowanie kalendarza według miesiąca lub roku, a także zapewnia inne funkcje związane z kalendarzem.

The kalendarz sam moduł zależy od modułu datetime. Ale będziemy również potrzebować datetime do własnych celów później, więc najlepiej zaimportować oba z nich. Ponadto, aby dokonać podziału ciągów, będziemy potrzebować re moduł. Zaimportujmy je wszystkie za jednym razem.

Domyślnie kalendarze rozpoczynają tydzień od poniedziałku (dzień 0) zgodnie z konwencją europejską i kończą się w niedzielę (dzień 6). Jeśli wolisz niedzielę jako pierwszy dzień tygodnia, skorzystaj z setfirstweekday () metoda zmiany wartości domyślnej na dzień 6 w następujący sposób:

Aby przełączać się między nimi, możesz przekazać pierwszy dzień tygodnia jako argument za pomocą sys moduł. Następnie sprawdziłbyś wartość za pomocą gdyby instrukcja i ustaw setfirstweekday () metoda odpowiednio.

W naszym kalendarzu byłoby miło mieć nagłówek kalendarza, który brzmi „Kalendarz generowany w języku Python dla ...” i ma bieżący miesiąc i rok. Aby to zrobić, musimy pobrać miesiąc i rok z systemu. Ta funkcja jest czymś, co

instagram viewer
kalendarz zapewnia, Python może pobrać miesiąc i rok. Ale wciąż mamy problem. Ponieważ wszystkie daty systemowe są liczbowe i nie zawierają nieskróconych ani nienumerycznych form miesięcy, potrzebujemy ich listy. Wejdź na listę rok.

Teraz, gdy otrzymamy numer miesiąca, możemy uzyskać dostęp do tego numeru (minus jeden) na liście i uzyskać pełną nazwę miesiąca.

Co ciekawe, datetime moduł ma datetime klasa. To z tej klasy nazywamy dwa obiekty: teraz() i data(). Metoda datetime.datetime.now () zwraca obiekt zawierający następujące informacje: rok, miesiąc, datę, godzinę, minuty, sekundy i mikrosekundy. Oczywiście nie potrzebujemy informacji o czasie. Aby samodzielnie zebrać informacje o dacie, przekazujemy wyniki teraz() do datetime.datetime.date () jako argument. Rezultat jest taki dzisiaj teraz zawiera rok, miesiąc i datę oddzielone myślnikami.

Aby rozbić ten kawałek danych na łatwiejsze do zarządzania części, musimy go podzielić. Następnie możemy przypisać części do zmiennych bieżący_rr, obecny miesiąc, i bieżący dzień odpowiednio.

Aby zrozumieć pierwszą linię tego kodu, pracuj od prawej do lewej i od wewnątrz na zewnątrz. Najpierw skretyzujemy obiekt dzisiaj aby operować nim jako ciągiem znaków. Następnie podzieliliśmy go za pomocą em-myślnika jako separatora lub tokena. Na koniec przypisujemy te trzy wartości jako listę do „bieżącego”.

Aby lepiej poradzić sobie z tymi wartościami i wywołać długą nazwę bieżącego miesiąca z rok, przypisujemy numer miesiąca do bieżący nr. Możemy wtedy zrobić trochę odejmowania w indeksie dolnym rok i przypisz nazwę miesiąca do obecny miesiąc.

W następnym wierszu potrzebna jest odrobina podstawienia. Data zwrotu datetime jest dwucyfrową wartością nawet dla pierwszych dziewięciu dni miesiąca. Zero działa jako symbol zastępczy, ale wolelibyśmy, aby nasz kalendarz miał tylko jedną cyfrę. Dlatego nie podstawiamy żadnej wartości za każde zero rozpoczynające ciąg (stąd „\ A”). Na koniec przypisujemy rok do bieżący_rr, po drodze konwertując go na liczbę całkowitą.

Metody, które wywołamy później, będą wymagały wprowadzania danych w formacie liczb całkowitych. Dlatego ważne jest, aby upewnić się, że wszystkie dane daty są zapisane w postaci liczb całkowitych, a nie ciągów znaków.

Przed wydrukowaniem kalendarza musimy wydrukowaćHTML preambuła i układ CSS naszego kalendarza. Przejdź do tej strony, aby uzyskać kod do wydrukowania preambuły CSS i HTML kalendarza. i skopiuj kod do pliku programu. CSS w kodzie HTML tego pliku jest zgodny z szablonem oferowanym przez Jennifer Kyrnin, Przewodnik po projektowaniu stron internetowych. Jeśli nie rozumiesz tej części kodu, możesz skonsultować się z jej pomocą w nauce CSS i HTML. Wreszcie, aby dostosować nazwę miesiąca, potrzebujemy następującego wiersza:

Teraz, gdy generowany jest podstawowy układ, możemy skonfigurować sam kalendarz. Kalendarz, w najbardziej podstawowym punkcie, to tabela. Zróbmy więc tabelę w naszym HTML:

Teraz musimy stworzyć rzeczywisty kalendarz. Aby uzyskać rzeczywiste dane kalendarza, potrzebujemy kalendarz moduły monthcalendar () metoda. Ta metoda przyjmuje dwa argumenty: rok i miesiąc pożądanego kalendarza (oba w postaci liczb całkowitych). Zwraca listę zawierającą listy dat miesiąca według tygodnia. Jeśli więc policzymy liczbę pozycji w zwróconej wartości, mamy liczbę tygodni w danym miesiącu.

Znając liczbę tygodni w miesiącu, możemy utworzyć dla pętla, która liczy przez zasięg() od 0 do liczby tygodni. W tym momencie wydrukuje resztę kalendarza.

Po uruchomieniu tego zakresu daty tygodnia są odliczane miesiąc zgodnie z wartością licznika i przypisany do tydzień. Następnie tworzony jest wiersz tabelaryczny do przechowywania dat kalendarza.

ZA dla Pętla następnie przechodzi przez dni tygodnia, aby można je było przeanalizować. The kalendarz moduł drukuje „0” dla każdej daty w tabeli, która nie ma prawidłowej wartości. Dla naszych celów pusta wartość działałaby lepiej, więc drukujemy bookends danych tabelarycznych bez wartości dla tych dat.

Następnie, jeśli dzień jest aktualny, powinniśmy go jakoś podkreślić. Na podstawie td klasa dzisiaj, CSS tej strony spowoduje, że bieżąca data będzie renderowana na ciemnym tle zamiast na jasnym tle innych dat.

Wreszcie, jeśli data jest prawidłową wartością i nie jest bieżącą datą, jest drukowana jako dane tabelaryczne. Dokładne kombinacje kolorów dla nich znajdują się w preambule stylu CSS.

Z tego prostego kalendarza można korzystać w dowolny sposób, który wymaga przedstawienia kalendarza. Poprzez hiperłącze dat w HTML, można łatwo stworzyć funkcjonalność pamiętnika. Alternatywnie, można sprawdzić w pliku dziennika, a następnie zastanowić się, które daty są pobierane według ich koloru. Lub, jeśli przekształci się ten program w skrypt CGI, można go wygenerować w locie.