django编写html时,view.py传递一个4行5列的数据到html中,我需要在html上将这个数据以表格形式展示出来,并且传递的首行数据要加粗,请给出详细的代码示例
时间: 2024-05-07 10:18:33 浏览: 63
首先在view.py中定义数据,假设数据是一个2维列表,如下:
```python
data = [
['Name', 'Age', 'Gender', 'City', 'Country'],
['Alice', 25, 'Female', 'New York', 'USA'],
['Bob', 30, 'Male', 'London', 'UK'],
['Charlie', 40, 'Male', 'Paris', 'France'],
['David', 35, 'Male', 'Tokyo', 'Japan']
]
```
然后在view.py中传递数据到html中,可以使用`render`函数:
```python
from django.shortcuts import render
def my_view(request):
data = [
['Name', 'Age', 'Gender', 'City', 'Country'],
['Alice', 25, 'Female', 'New York', 'USA'],
['Bob', 30, 'Male', 'London', 'UK'],
['Charlie', 40, 'Male', 'Paris', 'France'],
['David', 35, 'Male', 'Tokyo', 'Japan']
]
return render(request, 'my_template.html', {'data': data})
```
在html文件my_template.html中,我们可以使用表格标签`<table>`和表格单元格标签`<td>`和`<th>`展示数据:
```html
<table>
<thead>
<tr>
{% for head in data.0 %}
<th>{% if forloop.first %}<b>{% endif %}{{ head }}{% if forloop.first %}</b>{% endif %}</th>
{% endfor %}
</tr>
</thead>
<tbody>
{% for row in data.1 %}
<tr>
{% for cell in row %}
<td>{{ cell }}</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>
```
在上面的代码中,我们首先使用`{% for %}`标签遍历首行数据,使用`<th>`标签展示表头,并使用`{% if %}`标签判断是否是首行数据,并使用`<b>`标签加粗首行数据。然后再使用`{% for %}`标签遍历除首行之外的数据,使用`<td>`标签展示表格单元格。
阅读全文