Creați un calendar HTML în Python în mod dinamic

click fraud protection

lui Python calendar modulul face parte din biblioteca standard. Permite ieșirea unui calendar pe lună sau an și oferă, de asemenea, alte funcționalități legate de calendar.

calendar modulul propriu-zis depinde de modulul datetime. Dar vom avea nevoie și noi datetime pentru scopurile noastre ulterioare, deci este mai bine să le importăm pe ambele. De asemenea, pentru a efectua o divizare a șirurilor, vom avea nevoie de re modul. Să le importăm pe toate într-o singură dată.

În mod implicit, calendarele încep săptămâna cu luni (ziua 0), conform convenției europene și se încheie cu duminică (ziua 6). Dacă preferi duminica ca prima zi a săptămânii, folosește setfirstweekday () metoda de modificare a valorii implicite la ziua 6 după cum urmează:

Pentru a comuta între cele două, puteți trece prima zi a săptămânii ca argument folosind butonul sys modul. Ați verifica apoi valoarea cu un dacă declarație și setați setfirstweekday () metoda în consecință.

În calendarul nostru, ar fi frumos să avem un antet pentru calendarul care citește ceva de genul „Un calendar generat de Python For ...” și să avem luna și anul în curs. Pentru a face acest lucru, trebuie să scoatem luna și anul din sistem. Această funcționalitate este ceva care

instagram viewer
calendar furnizează, Python poate prelua luna și anul. Dar mai avem o problemă. Întrucât toate datele sistemului sunt numerice și nu conțin forme neabreviate sau non-numerice ale lunilor, avem nevoie de o listă a acestor luni. Introduceți lista an.

Acum, când obținem numărul unei luni, putem accesa acel număr (minus unul) din listă și obținem numele lunii complete.

Curios este că datetime modulul are un datetime clasă. Din această clasă numim două obiecte: acum() și Data(). Metoda datetime.datetime.now () returnează un obiect care conține următoarele informații: an, lună, dată, oră, minut, secundă și microsecunde. Desigur, nu avem nevoie de informații despre timp. Pentru a elimina informațiile date numai, trecem rezultatele acum() la datetime.datetime.date () ca argument. Rezultatul este că astăzi acum conține anul, luna și data, separate prin linii.

Pentru a împărți acest bit de date în bucăți mai gestionabile, trebuie să le împărțim. Putem apoi să alocăm piesele pentru variabile current_yr, luna curentă, și ziua curentă respectiv.

Pentru a înțelege prima linie a acestui cod, lucrați de la dreapta la stânga și din interior spre exterior. În primul rând, stringim obiectul astăzi în scopul de a opera pe el ca un șir. Apoi, îl împărțim folosind em-dash-ul ca delimitator sau jeton. În cele din urmă, alocăm aceste trei valori ca listă la „curent”.

Pentru a face față acestor valori mai distinct și pentru a apela numele lung al lunii curente an, alocăm numărul lunii current_no. Putem face apoi un pic de scădere în abonamentul de la an și atribuiți numele lunii luna curentă.

În linia următoare, este nevoie de un pic de substituție. Data la care este returnat datetime este o valoare din două cifre chiar și pentru primele nouă zile ale lunii. Un zero funcționează ca deținător de locație, dar preferăm ca calendarul nostru să aibă doar o singură cifră. Deci nu înlocuim nicio valoare pentru fiecare zero care începe o șir (de aici „\ A”). În final, atribuim anul current_yr, convertind-o într-un număr întreg de-a lungul drumului.

Metodele la care vom apela ulterior vor necesita introducerea în format întreg. Prin urmare, este important să vă asigurați că toate datele de date sunt salvate într-o formă întreagă, nu șir.

Înainte de a tipări calendarul, trebuie să imprimămHTML preambul și aspect CSS pentru calendarul nostru. Accesați această pagină pentru codul pentru a tipări preambulul CSS și HTML pentru calendar. și copiați codul în fișierul dvs. de program. CSS din HTML al acestui fișier urmează șablonul oferit de Jennifer Kyrnin, About's Guide to Web Design. Dacă nu înțelegeți această parte a codului, poate doriți să o consultați pentru a învăța CSS și HTML. În final, pentru a personaliza numele lunii, avem nevoie de următoarea linie:

Acum, că aspectul de bază este rezultat, putem configura calendarul în sine. Un calendar, în punctul său de bază, este un tabel. Deci, să facem un tabel în HTML-ul nostru:

Acum trebuie să creăm calendarul propriu-zis. Pentru a obține datele calendaristice reale, avem nevoie de calendar de module monthcalendar () metodă. Această metodă are două argumente: anul și luna calendarului dorit (ambele în formă întreagă). Întoarce o listă care conține liste cu datele lunii pe săptămână. Deci, dacă numărăm numărul de articole din valoarea returnată, avem numărul de săptămâni din luna dată.

Cunoscând numărul de săptămâni din lună, putem crea o pentru bucla care contează prin a gamă() de la 0 la numărul de săptămâni. Așa cum va face, va tipări restul calendarului.

După ce acest interval a fost început, datele săptămânii sunt eliminate lună în funcție de valoarea contorului și alocat la săptămână. Apoi, este creat un rând tabular pentru a reține datele calendarului.

A pentru bucla apoi merge prin zilele săptămânii, astfel încât acestea să poată fi analizate. calendar modulul imprimă un „0” pentru fiecare dată din tabel care nu are o valoare valabilă. O valoare necompletată ar funcționa mai bine în scopurile noastre, astfel încât să tipărim cărțile de date tabulare fără o valoare pentru aceste date.

În continuare, dacă ziua este cea actuală, ar trebui să o evidențiem cumva. Bazat pe td clasă astăzi, CSS-ul acestei pagini va face ca data curentă să fie redată pe un fundal întunecat în locul fundalului deschis al celorlalte date.

În sfârșit, dacă data este o valoare valabilă și nu este data curentă, aceasta este tipărită ca date tabulare. Combinațiile exacte de culori pentru acestea sunt păstrate în preambulul stilului CSS.

Doar acest calendar simplu poate fi folosit în orice mod care are nevoie de o reprezentare a calendarului. Prin hiperlegarea datelor din HTML, se poate crea cu ușurință o funcționalitate de jurnal. În mod alternativ, se poate verifica un fișier de jurnal și apoi se reflectă ce date sunt luate după culoarea lor. Sau, dacă cineva convertește acest program într-un script CGI, îl putem genera din mers.

instagram story viewer