Django отображает DynamoDB JSON в таблицу HTML - PullRequest
1 голос
/ 18 апреля 2020

Я пытаюсь использовать страницу Django в качестве внешнего интерфейса, используя некоторые таблицы AWS DynamoDB в качестве внутреннего. Для этого я использую библиотеку boto3, и она правильно получает данные из таблицы, но я не могу разобрать данные в таблицу HTML. У меня есть следующее в views.py

def history(request):
     itemsid = list()
     agents = list()
     dates = list()
     source = list()
     dynamodb_resource('dynamodb')
     history_table = dynamodb_resource.Table('name_of_the_table')
     all_items = history_table.scan()
     for p in all_items['Items']:
       itemsid.append((p['id'])),
       agents.append((p['agent'])),
       dates.append((p['date'])),
       source.append((p['source']))
    return render(request, 'history.html', {'itemsid':itemsid, 'agents':agents, 'dates':dates, 'source':source}

Проблема в том, что я не знаю, как написать код html для отображения таблицы со строками: id, agent, date и source.

У меня в истории есть следующее. html

<table>
  {% for i in itemsid %}
  <tr>
    <td>{{ i }}</td>
    ...

, но я не знаю, как его кодировать (как l oop это), чтобы показать таблицу с списки в качестве источника.

Любая идея, пожалуйста, о том, как проанализировать Json со следующим форматом в HTML с Django и Python, пожалуйста ?.

JSON от DynamoDB:

{
  'Items: [ {
    'id': '94f'
    'agent': 'aws'
    'date': '04/05
    'source'
    'case1'
  }, {
    'id': 'lk42'
      ...

Большое спасибо. Я новичок в Django и в программировании в целом, поэтому любая помощь очень ценится.

1 Ответ

0 голосов
/ 19 апреля 2020

Django позволяет получить доступ к элементам словаря внутри шаблона. Так что вы можете сделать что-то вроде этого ...

Просмотр:

def history(request):
     dynamodb_resource('dynamodb')
     history_table = dynamodb_resource.Table('name_of_the_table')
     all_items = history_table.scan()
     return render(request, 'history.html', { items: all_items['Items'] })

Ваш шаблон:

<table>
  {% for item in items %}
    <tr>
        <td>{{ item.id }}</td>
        <td>{{ item.agent }}</td>
        <td>{{ item.date }}</td>
        <td>{{ item.source }}</td>
    </tr>
  {% endfor %}
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...