python calendrier.HTMLCalendar
Je pense que je veux utiliser pythons construit dans le module calendrier pour créer un HTML calendrier avec des données. Je dis je pense car je vais probablement penser à une meilleure façon, mais pour l'instant c'est un peu personnel. Je ne sais pas si cela a été prévu pour être utilisé de cette façon, mais il semble que c'est un peu inutile si vous ne pouvez pas au moins les jours dans un <a hrefs>
.
Ceci définit un calendrier pour ce mois-ci avec le dimanche comme premier jour.
import calendar
myCal = calendar.HTMLCalendar(calendar.SUNDAY)
print myCal.formatmonth(2009, 7)
il imprime
<table border="0" cellpadding="0" cellspacing="0" class="month">\n<tr>
<th colspan="7" class="month">July 2009</th></tr>\n<tr><th class="sun">Sun</th>
<th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th>
<th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th></tr>\n
<tr><td class="noday"> </td><td class="noday"> </td>
<td class="noday"> </td><td class="wed">1</td><td class="thu">2</td><td class="fri">3</td>
<td class="sat">4</td></tr>\n<tr><td class="sun">5</td><td class="mon">6</td><td class="tue">7</td>
<td class="wed">8</td><td class="thu">9</td><td class="fri">10</td>
<td class="sat">11</td></tr>\n<tr><td class="sun">12</td><td class="mon">13</td>
<td class="tue">14</td><td class="wed">15</td><td class="thu">16</td><td class="fri">17</td>
<td class="sat">18</td></tr>\n<tr><td class="sun">19</td><td class="mon">20</td>
<td class="tue">21</td><td class="wed">22</td><td class="thu">23</td><td class="fri">24</td>
<td class="sat">25</td></tr>\n<tr><td class="sun">26</td><td class="mon">27</td>
<td class="tue">28</td><td class="wed">29</td><td class="thu">30</td><td class="fri">31</td>
<td class="noday"> </td></tr>\n</table>\n
Je voudrais insérer des données dans la HTMLCalendar objet avant qu'il rend la chaîne html. Je ne peux pas comprendre comment.
Par exemple
<td class="tue">28<br />[my data]</td>
Il semblerait que le HTMLCalendar objet n'est pas modifiable et est assez inutile... Leur sont d'autres choses dans le calendrier de l'objet qui sont utiles mais pas HTMLCalendar. Triste, vraiment.
IMO ils devraient supprimer HTMLCalendar de toute façon, ce n'est pas une bibliothèque html, et pourquoi pas RTFCalendar ou PDDFCalendar, module calendrier devrait générer calendrier simple il faut jusqu'à l'utilisateur de le rendre,
IMO ils devraient supprimer HTMLCalendar de toute façon, ce n'est pas une bibliothèque html, et pourquoi pas RTFCalendar ou PDDFCalendar, module calendrier devrait générer calendrier simple il faut jusqu'à l'utilisateur de le rendre,
OriginalL'auteur Kenny Pyatt | 2009-07-09
Vous devez vous connecter pour publier un commentaire.
Vous pouvez charger du html, ce qui semble être valide XMl dans un arbre XML, de les modifier et de nouveau de sortie.
par exemple, ce qui ajoute
<br/> cool
à chaque Aut td nœud.Je ne sais pas encore pourquoi vous avez besoin de générer un HTML de calendrier, mais il ya de meilleures façons de le faire selon les besoins et le cadre que vous utilisez.
est-ce une application web ou une application de bureau? si le bureau quel cadre? et pourquoi vous avez besoin de html dans ce cas? si le web il y a de mieux html calendrier des commandes disponibles.
et oui, vous pouvez utiliser ma méthode pour modifier la sortie HTML de calendrier, qui était votre question, de sorte que vous pouvez accepter cette réponse 🙂
OriginalL'auteur Anurag Uniyal
Créer une nouvelle classe héritant de HTMLCalendar.
Remplacer le formatday méthode.
Celui qui fait des commentaires du genre: "cette bibliothèque est inutile" de toute évidence ne pas comprendre Python.
Une belle astuce quand le sous-classement... vous pouvez toujours appeler la fonction d'origine si besoin à l'aide de
super
, de sorte que vous ne jamais avoir à ré-écrire la fonction d'origine du code. j'ai fait un HTML calendrier qui met en avant certains jours...OriginalL'auteur Alan Hynes
Le module calendrier a généralement été assez inutile, mais en 2.5, il a présenté le Calendrier de l'objet. Ce ne sera pas rendu HTML calendrier pour vous, mais il a des charges de méthodes qui vous aideront à rendre un calendrier.
Par exemple, monthdatescalendar(année, mois) vous donnera une liste de toutes les semaines dans le mois donné, où chaque semaine à son tour une liste de sept jours. Donc monthdatescalendar(2009,7) va commencer avec
[[datetime.date(2009, 6, 29), datetime.date(2009, 6, 30),
et à la fin avecdatetime.date(2009, 8, 1), datetime.date(2009, 8, 2)]]
Avec cela, il devient alors simple de générer le code HTML que vous voulez.
Ouais, donc voter! 🙂 Je veux de 10 points! 😀
Et aujourd'hui, j'ai pris dix points! Heh! 🙂
OriginalL'auteur Lennart Regebro
Vous pouvez sous-classe HTMLCalendar et de redéfinir ses méthodes pour faire ce que vous voulez, comme suit: http://journal.uggedal.com/creating-a-flexible-monthly-calendar-in-django/
Si vous vous référez à la documentation de HTMLCalendar (http://svn.python.org/view/python/branches/release27-maint/Lib/calendar.py?view=markup), vous verrez que le formatday() la méthode est très simple. Simplement les remplacer, comme dans l'exemple ci-dessus, à faire ce que vous souhaitez. Donc HTMLCalendar n'est pas si inutile, après tout. 😉
OriginalL'auteur Lockjaw
C'est difficile à dire sans savoir exactement ce que vous essayez d'accomplir, mais voici une idée.
Au lieu de l'impression myCal.formatmonth(2009, 7), pourquoi ne pas l'attribuer à une chaîne. Ensuite, vous pouvez le manipuler, peut-être avec une regex.
Ici est un très mauvais exemple:
Il fait ce que vous voulez, mais c'est assez laid.
J'ai ajouté un exemple, mais c'est probablement la pire façon de le faire. Êtes-vous à l'aide d'un framework web pour ce projet? Votre cadre peut inclure une meilleure façon de créer des calendriers.
J'ai vraiment écrit quelque chose comme ça dans ma frustration avec l'objet.
OriginalL'auteur Anthony Lewis