我想我想使用 pythons 内置的日历模块来创建一个带有数据的 HTML 日历。我说我认为是因为我可能会想到更好的方法,但现在它有点个人化。我不知道这是否打算以这种方式使用,但如果你不能至少将日子变成 <a hrefs>
,这似乎有点毫无意义。 .
这为这个月设置了一个日历,以星期日为第一天。
import calendar
myCal = calendar.HTMLCalendar(calendar.SUNDAY)
print myCal.formatmonth(2009, 7)
它打印
<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
我想在 HTMLCalendar 对象呈现 html 字符串之前插入一些数据。我只是想不通怎么办。
例如
<td class="tue">28<br />[my data]</td>
最佳答案
创建一个继承自 HTMLCalendar 的新类。 覆盖 formatday 方法。
发表“这个库没用”之类评论的人显然不懂 Python。
class EmployeeScheduleCalendar(HTMLCalendar):
def formatday(self, day, weekday):
"""
Return a day as a table cell.
"""
if day == 0:
return '<td class="noday"> </td>' # day outside month
else:
return '<td class="%s"><a href="%s">%d</a></td>' % (self.cssclasses[weekday], weekday, day)
关于 python 日历.HTMLCalendar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1101524/