首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML表格不能正确呈现

HTML表格不能正确呈现
EN

Stack Overflow用户
提问于 2018-05-31 11:11:15
回答 2查看 705关注 0票数 0

我有一个Django视图,它发送一个字典,它的内容将在html页面中呈现。

我的字典是这样的,

代码语言:javascript
复制
d ={ name : ['damon','stefan','elena'],
      age :  [200,200,25],
      address : ['mystic falls','mystic falls','mystic falls']
      supernatural : ['yes','yes','yes']}

现在我的html表格模板看起来像这样,

代码语言:javascript
复制
<table class="table table-striped" border="1" class="dataframe">
    <thead>
     <tr style="text-align: center;">
       {% for i in d %}
       <th>{{ i }}</th>
       {% endfor %}
     </tr>
   </thead>
   <tbody>
     {% for i,j in d.items %}
      <tr style="text-align: center;">
       {% for x in j %}
        <td>{{ x }}</td>
       {% endfor %}
      </tr>
      {% endfor %}
   </tbody>
 </table>

问题:

当渲染完成时,字典的最后一个值,即'yes','yes','yes‘是一行。下面是输出的样子,

代码语言:javascript
复制
name     age       address    supernatural
damon    200    mystic falls  
stefan   200    mystic falls  
elena     25    mystic falls  
yes       yes   yes

基本上,最后一列的值是以行的形式出现的。

你能告诉我为什么会这样吗?上面的html表格代码有什么问题吗?

EN

回答 2

Stack Overflow用户

发布于 2018-05-31 12:52:25

也许你必须改变你的数据类型。你的d的类型有点奇怪。我建议你把它改成普通对象(两者在python / javascript对象中都很熟悉)。如下所示

代码语言:javascript
复制
    d2 = [
        {'name': 'damon', 'age': 200, 'address': 'mystic falls', 'sub': 'yes'},
        {'name': 'stefan', 'age': 200, 'address': 'mystic falls', 'sub': 'yes'},
        {'name': 'elena', 'age': 200, 'address': 'mystic falls', 'sub': 'yes'},
    ]

然后你就可以在模板中使用forloop了。如下所示。

代码语言:javascript
复制
<table class="table table-striped" border="1" class="dataframe">
    <thead>
     <tr style="text-align: center;">
       {% for k, v in d2.0.items %}
       <th>{{ k }}</th>
       {% endfor %}
     </tr>
   </thead>
   <tbody>
   {% for x in d2 %}
      <tr style="text-align: center;">
          <td>
              {{ x.name }}
          </td>
          <td>
              {{ x.age }}
          </td>
          <td>
              {{ x.address }}
          </td>
          <td>
              {{ x.sub }}
          </td>
      </tr>
  {% endfor %}
   </tbody>

ps。你可以使用你当前的数据,但它更复杂,真的很难理解-很难将一个人与他们的数据相匹配,甚至当某些字段为空时也无法匹配。

票数 1
EN

Stack Overflow用户

发布于 2018-05-31 11:34:40

我认为你需要在address:[]后面加上逗号“,”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50616094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档