如何使用Dominate库在python中添加表

时间:2017-10-05 07:14:32

标签: html css python-2.7 dominate

我使用Dominate Library创建了Table,但现在我想更改我的表类。有人可以帮我这么做吗?

doc1 = dominate.document(title='Dominate your HTML')
    with doc1:
        with div():
            attr(cls='body')
            h1('Survey Report : Survey Report')
    oc = dominate.document(title="whatever")
    with doc1:
        tags.style(".calendar_table{width:880px;}")
        tags.style("body{font-family:Helvetica}")
        tags.style("h1{font-size:x-large}")
        tags.style("h2{font-size:large}")
        tags.style("table{border-collapse:collapse}")
        tags.style("th{font-size:small;border:1px solid gray;padding:4px;background-color:#DDD}")
        tags.style("td{font-size:small;text-align:center;border:1px solid gray;padding:4px}")
        with tags.table():
            with tags.thead():
                tags.th("Nominee", style = "color:#ffffff;background-color:#6A75F2")
                tags.th("counts", style = "color:#ffffff;background-color:#6A75F2")
            with tags.tbody():
                for i in range(0,len(nom)):
                    with tags.tr(): #Row 1
                        tags.td(nom[i], style = "font-size:small;text-align:center;padding:4px")
                        if int(count_nom[i]) > 1:
                            tags.td(count_nom[i], style = "font-size:small;text-align:center;padding:4px;background-color:#F4D8D2")
                        else:
                            tags.td(count_nom[i], style = "font-size:small;text-align:center;padding:4px")
                with tags.tr(): #Row 1
                        tags.td(b("Grand Total"), style = "font-size:small;text-align:center;padding:4px")
                        tags.td(b(sum(count_nom)), style = "font-size:small;text-align:center;padding:4px")
with open('/root/survey/'+'survey'+'.html', 'w') as f:
        f.write(doc1.render())

有了这个我能够在HTML中创建表

<div class="body">
  <h1>Survey Report</h1>
</div>
<style>.calendar_table{width:880px;}</style>
<style>body{font-family:Helvetica}</style>
<style>h1{font-size:x-large}</style>
<style>h2{font-size:large}</style>
<style>table{border-collapse:collapse}</style>
<style>th{font-size:small;border:1px solid gray;padding:4px;background-color:#DDD}</style>
<style>td{font-size:small;text-align:center;border:1px solid gray;padding:4px}</style>
<table>
  <thead>
    <th style="color:#ffffff;background-color:#6A75F2">Nominee</th>
    <th style="color:#ffffff;background-color:#6A75F2">counts</th>
  </thead>
  <tbody>
    <tr>
      <td style="font-size:small;text-align:center;padding:4px">Deepesh Ahuja</td>
      <td style="font-size:small;text-align:center;padding:4px">1</td>
    </tr>
    <tr>
      <td style="font-size:small;text-align:center;padding:4px">Sabyasachi Mallick</td>
      <td style="font-size:small;text-align:center;padding:4px">1</td>
    </tr>
    <tr>
      <td style="font-size:small;text-align:center;padding:4px">Raju Singh</td>
      <td style="font-size:small;text-align:center;padding:4px">1</td>
    </tr>
    <tr>
      <td style="font-size:small;text-align:center;padding:4px">Abarna Ravi</td>
      <td style="font-size:small;text-align:center;padding:4px;background-color:#F4D8D2">2</td>
    </tr>
    <tr>
      <td style="font-size:small;text-align:center;padding:4px">
        <b>Grand Total</b>
      </td>
      <td style="font-size:small;text-align:center;padding:4px">
        <b>5</b>
      </td>
    </tr>
  </tbody>
</table><br><br><br>

现在我将如何在python代码中设置表类,如

<table class='calender_tabe'>

有人可以帮我用python dominate库设置表和其他标签的类吗?

1 个答案:

答案 0 :(得分:1)

使用github's documentation

中的示例语法
from dominate.tags import *

testTable = table(border = 1)
print testTable

将返回:

<table border="1"></table> 

使用print语句。但是,因为你不能使用&#34; class&#34;要引用html属性(类是一个python保留字),你必须间接地去做它:

testTable.set_attribute('class','my_class_name')

将上述内容添加到testTable的原始实例将导致:

<table border="1" class="my_class_name"></table>