Luo HTML-kalenteri dynaamisesti Python-sovellukseen

Pythonin kalenteri moduuli on osa vakiokirjastoa. Se sallii kalenterin tulostuksen kuukausittain tai vuodessa ja tarjoaa myös muita, kalenteriin liittyviä toimintoja.

kalenteri Itse moduuli riippuu päivämäärämoduulista. Mutta me tarvitsemme myös treffiaika omaan tarkoitukseen myöhemmin, joten on parasta tuoda nämä molemmat. Jotta jonkin verran merkkijakoa voidaan tehdä, tarvitsemme re moduuli. Tuomme ne kaikki kerralla.

Oletusarvon mukaan kalenterit alkavat viikolla maanantaina (päivä 0) Eurooppa-valmistelukunnan mukaisesti ja päättyvät sunnuntaina (päivä 6). Jos pidät sunnuntaista viikon ensimmäisenä päivänä, käytä setfirstweekday () menetelmä muuttaa oletusasetuksen päiväksi 6 seuraavasti:

Voit siirtyä kahden välillä siirtämällä viikon ensimmäisen päivän argumenttina käyttämällä sys moduuli. Tarkista sitten arvo merkillä jos lause ja aseta setfirstweekday () menetelmä vastaavasti.

Kalenterissamme olisi hienoa saada kalenterin otsikko, joka lukee jotain "Pythonin luomaa kalenteria ..." ja jolla on nykyinen kuukausi ja vuosi. Jotta voimme tehdä tämän, meidän on saatava kuukausi ja vuosi järjestelmästä. Tämä toiminnallisuus on jotain

instagram viewer
kalenteri tarjoaa, Python voi hakea kuukauden ja vuoden. Mutta meillä on edelleen ongelma. Koska kaikki järjestelmäpäivämäärät ovat numeerisia eivätkä sisällä kuukausien erittelemättömiä tai ei-numeerisia muotoja, tarvitsemme luettelon niistä kuukausista. Kirjoita luettelo vuosi.

Nyt kun saamme kuukauden numeron, voimme käyttää tätä numeroa (miinus yksi) luettelossa ja saada täyden kuukauden nimen.

Kummallisen kyllä, treffiaika moduulissa on treffiaika luokka. Juuri tästä luokasta kutsumme kahta objektia: nyt() ja Päivämäärä(). Menetelmä datetime.datetime.now () palauttaa objektin, joka sisältää seuraavat tiedot: vuosi, kuukausi, päivämäärä, tunti, minuutti, sekunti ja mikrosekunnit. Tietysti meillä ei ole tarvetta aikatietoihin. Jotta päivämäärätiedot poistetaan pelkästään, välitämme tulokset nyt() että datetime.datetime.date () perusteena. Tuloksena on tänään sisältää nyt vuoden, kuukauden ja päiväyksen rivillä erotettuna.

Jos haluat hajottaa tämän vähän tietoja hallittavissa oleviin osiin, meidän on jaettava se. Voimme sitten määrittää osat muuttujille current_yr, Tämä kuukausija current_day vastaavasti.

Ymmärtääksesi koodin ensimmäisen rivin, työskentele oikealta vasemmalle ja sisäpuolelta ulospäin. Ensinnäkin, me määrittelemme objektin tänään jotta sitä voidaan käyttää merkkijonona. Sitten jaamme sen käyttämällä em-viivaa erottimena tai merkillä. Lopuksi annamme nämä kolme arvoa luettelona ”nykyiselle”.

Jotta näitä arvoja voitaisiin käsitellä tarkemmin ja kutsua nykyisen kuukauden pitkä nimi pois vuosi, osoitamme kuukauden numeron current_no. Voimme sitten tehdä vähän vähennyksiä alaindeksissä vuosi ja määritä kuukauden nimi Tämä kuukausi.

Seuraavalla rivillä tarvitaan vähän korvaamista. Päivämäärä, joka palautetaan treffiaika on kaksinumeroinen arvo jopa kuukauden yhdeksän ensimmäisen päivän ajan. Nolla toimii paikan haltijana, mutta mieluummin kalenterissamme olisi vain yksi numero. Joten me ei korvaa arvoa jokaiselle nollalle, joka alkaa merkkijonosta (siis '\ A'). Lopuksi osoitamme vuoden current_yr, muuntamalla se kokonaislukuna matkan varrella.

Menetelmät, joihin soitamme myöhemmin, vaativat syöttämisen kokonaislukuina. Siksi on tärkeää varmistaa, että kaikki päivämäärätiedot tallennetaan kokonaislukuina, ei merkkijonona.

Ennen kalenterin tulostamista meidän on tulostettavaHTML kalenterimme johdanto- ja CSS-asettelut. Siirry tälle sivulle koodin tulostamiseksi kalenterin CSS- ja HTML-johdanto-osissa. ja kopioi koodi ohjelmatiedostoosi. Tämän tiedoston HTML-muodossa oleva CSS noudattaa mallia, jonka tarjoaa Jennifer Kyrnin, About's Guide to Web Design. Jos et ymmärrä tätä koodin osaa, kannattaa ehkä kysyä hänen apuaan CSS: n ja HTML: n oppimisessa. Viimeinkin kuukauden nimen mukauttamiseksi tarvitsemme seuraavan rivin:

Nyt kun perusasettelu on annettu, voimme perustaa kalenterin itse. Kalenteri on perusteellisimmassa pisteessä taulukko. Joten tehdään taulukko HTML-koodiin:

Nyt meidän on luotava todellinen kalenteri. Kalenteritietojen saamiseksi tarvitsemme kalenteri moduulin monthcalendar () menetelmä. Tämä menetelmä vie kaksi argumenttia: halutun kalenterin vuosi ja kuukausi (molemmat kokonaislukuina). Se palauttaa luettelon, joka sisältää luettelot kuukauden päivämääristä viikoittain. Joten jos laskemme palautettujen arvojen tuotteiden lukumäärän, meillä on viikkojen lukumäärä annetussa kuussa.

Tietäen viikkojen määrän kuukaudessa, voimme luoda varten silmukka, joka laskee läpi alue () välillä 0 viikkojen lukumäärään. Tällöin se tulostaa lopun kalenterista.

Kun tämä alue on aloitettu, viikon päivämäärät poistetaan kuukausi laskurin arvon mukaan ja määritetty viikko. Sitten luodaan taulukkomuodorivi kalenteripäivien pitämiseksi.

varten Silmukka käy sitten viikonpäivien läpi, jotta niitä voidaan analysoida. kalenteri moduuli tulostaa '0' jokaiselle päivämäärälle taulukossa, jolla ei ole kelvollista arvoa. Tyhjä arvo toimisi paremmin tarkoituksiin, joten tulostamme taulukkotietojen varausmerkit ilman arvoa kyseisille päivämäärille.

Seuraavaksi, jos päivä on nykyinen, meidän pitäisi korostaa se jotenkin. Perustuu td luokka tänään, tämän sivun CSS: n mukaan nykyinen päivämäärä näytetään tummaa taustaa vasten muiden päivämäärien vaalean taustan sijasta.

Viimeiseksi, jos päivämäärä on kelvollinen arvo eikä ole nykyinen päivämäärä, se tulostetaan taulukkotietoina. Näiden tarkat väriyhdistelmät pidetään CSS-tyylin johdannossa.

Vain tätä yksinkertaista kalenteria voidaan käyttää millä tahansa tavalla, joka tarvitsee kalenteriesityksen. Linkittämällä päivämäärät HTML-koodiin, päiväkirjatoiminnot voidaan luoda helposti. Vaihtoehtoisesti voidaan tarkistaa päiväkirjatiedoston perusteella ja pohtia sitten, mitkä päivämäärät otetaan väriensä perusteella. Tai jos muunnetaan tämä ohjelma CGI-komentosarjaksi, se voidaan tuottaa lennossa.