Для передачи данных в шаблон Django можно воспользоваться контекстными переменными. Например, в представлении (view) Django можно создать словарь, содержащий данные, которые нужно передать в шаблон, и передать этот словарь в функцию render(). На стороне шаблона можно обращаться к этим данным с использованием синтаксиса шаблонизатора Django, такого как {{ переменная }}.
Пример в представлении Django:
```python
from django.shortcuts import render
def my_view(request):
data = {
'name': 'John',
'age': 30
}
return render(request, 'my_template.html', {'data': data})
```
Пример в шаблоне HTML (my_template.html):
```html
<!DOCTYPE html>
<html>
<head>
<title>My Template</title>
</head>
<body>
<p>Name: {{ data.name }}</p>
<p>Age: {{ data.age }}</p>
</body>
</html>
```
Чтобы структурировать передачу данных в таблицу в HTML, можно в представлении Django сформировать данные в виде списка или словаря и передать их в шаблон. В шаблоне можно использовать циклы и условия для динамического отображения данных в таблице.
Пример в представлении Django:
```python
from django.shortcuts import render
def my_table_view(request):
data = [
{'name': 'John', 'age': 30},
{'name': 'Alice', 'age': 25},
]
return render(request, 'my_table_template.html', {'data': data})
```
Пример в шаблоне HTML (my_table_template.html):
```html
<!DOCTYPE html>
<html>
<head>
<title>My Table Template</title>
<style>
/* Пример стилей для таблицы */
table {
width: 100%;
border-collapse: collapse;
}
th, td {
border: 1px solid black;
padding: 5px;
text-align: left;
}
tr:nth-child(even) {
background-color: lightgray;
}
</style>
</head>
<body>
<table>
<tr>
<th>Name</th>
<th>Age
</tr>
{% for item in data %}
<tr>
<td>{{ item.name }}</td>
<td>{{ item.age }}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
```
Таким образом, данные из внешней базы данных могут быть удобно структурированы и отображены с помощью шаблонов Django, что позволяет динамически изменять и стилизовать таблицу с данными.