Crea un calendario HTML in Python in modo dinamico

Python calendario Il modulo fa parte della libreria standard. Consente l'output di un calendario per mese o per anno e fornisce anche altre funzionalità relative al calendario.

Il calendario il modulo stesso dipende dal modulo datetime. Ma avremo anche bisogno appuntamento per i nostri scopi in seguito, quindi è meglio importare entrambi. Inoltre, per eseguire una suddivisione delle stringhe, avremo bisogno di ri modulo. Importiamoli tutti in una volta sola.

Per impostazione predefinita, i calendari iniziano la settimana con lunedì (giorno 0), secondo la convenzione europea, e terminano con domenica (giorno 6). Se preferisci la domenica come primo giorno della settimana, usa il setfirstweekday () metodo per modificare l'impostazione predefinita al giorno 6 come segue:

Per alternare tra i due, è possibile passare il primo giorno della settimana come argomento utilizzando il SYS modulo. Dovresti quindi controllare il valore con un Se e imposta il setfirstweekday () metodo di conseguenza.

Nel nostro calendario, sarebbe bello avere un'intestazione per il calendario che legge qualcosa come "Un calendario generato da Python per ..." e avere il mese e l'anno correnti. Per fare ciò, dobbiamo ottenere il mese e l'anno dal sistema. Questa funzionalità è qualcosa che

instagram viewer
calendario fornisce, Python può recuperare il mese e l'anno. Ma abbiamo ancora un problema. Poiché tutte le date del sistema sono numeriche e non contengono forme non numerate o non numeriche dei mesi, è necessario un elenco di tali mesi. Inserisci la lista anno.

Ora quando otteniamo il numero di un mese, possiamo accedere a quel numero (meno uno) nell'elenco e ottenere il nome completo del mese.

Curiosamente, il appuntamento il modulo ha un appuntamento classe. È da questa classe che chiamiamo due oggetti: adesso() e Data(). Il metodo datetime.datetime.now () restituisce un oggetto contenente le seguenti informazioni: anno, mese, data, ora, minuti, secondi e microsecondi. Naturalmente, non abbiamo bisogno delle informazioni sul tempo. Per eliminare solo le informazioni sulla data, passiamo i risultati di adesso() per datetime.datetime.date () come argomento. Il risultato è quello oggi ora contiene l'anno, il mese e la data separati da trattini.

Per suddividere questo bit di dati in parti più gestibili, dobbiamo dividerlo. Possiamo quindi assegnare le parti alle variabili current_yr, corrente mese, e giorno corrente rispettivamente.

Per comprendere la prima riga di questo codice, lavora da destra a sinistra e dall'interno verso l'esterno. Innanzitutto, restringiamo l'oggetto oggi per operare su di esso come una stringa. Quindi, lo abbiamo diviso usando l'em-dash come delimitatore o token. Infine, assegniamo questi tre valori come elenco a "corrente".

Per gestire questi valori in modo più chiaro e per chiamare il nome lungo del mese corrente da anno, assegniamo il numero del mese a current_no. Possiamo quindi fare un po 'di sottrazione nel pedice di anno e assegnare il nome del mese a corrente mese.

Nella riga successiva è necessario un po 'di sostituzione. La data da cui viene restituito appuntamento è un valore di due cifre anche per i primi nove giorni del mese. Uno zero funziona come un segnaposto, ma preferiamo che il nostro calendario abbia solo una singola cifra. Quindi non sostituiamo alcun valore per ogni zero che inizia una stringa (quindi '\ A'). Infine, assegniamo l'anno a current_yr, convertendolo in un numero intero lungo la strada.

I metodi che chiameremo in seguito richiederanno input in formato intero. Pertanto, è importante assicurarsi che tutti i dati della data vengano salvati in forma intera, non stringa.

Prima di stampare il calendario, dobbiamo stampare ilHTML preambolo e layout CSS per il nostro calendario. Vai a questa pagina per il codice per stampare il preambolo CSS e HTML per il calendario. e copia il codice nel tuo file di programma. Il CSS nel codice HTML di questo file segue il modello offerto da Jennifer Kyrnin, About's Guide to Web Design. Se non capisci questa parte del codice, ti consigliamo di consultare i suoi aiuti per l'apprendimento di CSS e HTML. Infine, per personalizzare il nome del mese, abbiamo bisogno della seguente riga:

Ora che viene emesso il layout di base, possiamo impostare il calendario stesso. Un calendario, nel suo punto più elementare, è una tabella. Quindi facciamo una tabella nel nostro HTML:

Ora dobbiamo creare il calendario reale. Per ottenere i dati del calendario effettivo, abbiamo bisogno di calendario del modulo MonthCalendar () metodo. Questo metodo accetta due argomenti: l'anno e il mese del calendario desiderato (entrambi in forma intera). Restituisce un elenco che contiene elenchi delle date del mese per settimana. Quindi, se contiamo il numero di articoli nel valore restituito, abbiamo il numero di settimane in un determinato mese.

Conoscendo il numero di settimane del mese, possiamo creare un per loop che conta attraverso a gamma() da 0 al numero di settimane. In questo modo, stamperà il resto del calendario.

Dopo che questo intervallo è stato avviato, le date della settimana vengono eliminate mese in base al valore del contatore e assegnato a settimana. Quindi, viene creata una riga tabulare per contenere le date del calendario.

UN per il ciclo quindi passa attraverso i giorni della settimana in modo che possano essere analizzati. Il calendario Il modulo stampa uno '0' per ogni data nella tabella che non ha un valore valido. Un valore vuoto funzionerebbe meglio per i nostri scopi, quindi stampiamo i fermalibri di dati tabulari senza un valore per tali date.

Successivamente, se il giorno è quello corrente, dovremmo evidenziarlo in qualche modo. Basato sul TD classe oggi, il CSS di questa pagina provocherà il rendering della data corrente su uno sfondo scuro anziché sullo sfondo chiaro delle altre date.

Infine, se la data è un valore valido e non è la data corrente, viene stampata come dati tabulari. Le esatte combinazioni di colori per queste sono contenute nel preambolo di stile CSS.

Solo questo semplice calendario può essere utilizzato in qualsiasi modo che abbia bisogno di una rappresentazione del calendario. Collegamento ipertestuale delle date in HTML, si può facilmente creare una funzionalità di diario. In alternativa, è possibile verificare un file del diario e quindi riflettere quali date sono prese dal loro colore. Oppure, se si converte questo programma in uno script CGI, è possibile generarlo al volo.

instagram story viewer