Невозможно вернуть json значений, полученных из MongoDB, на HTML страницу в python flask - PullRequest
2 голосов
/ 01 августа 2020

Я могу получить необходимое значение из MongoDB индивидуально, а также могу распечатать те же значения, но не могу вернуть все эти значения на страницу HTML. Когда я пытаюсь вернуть эти значения, я вижу только первое значение, хотя я использовал для l oop в jinja. Мой код выглядит следующим образом:

@app.route('/webhookdisplay', methods=['POST', 'GET'])
def webhooksdis():
    collection10 = db['webhooks']
    a = collection10.find({"name": "abc"}, {'_id': 0, 'recorded_at':0, 'expiry_time': 0, 'version': 0, 'created_at': 0, 'account_id': 0, 'device_id': 0})
    for i in collection10.find({}):
        d = i.get('data', {}).get('geometry', {}).get('coordinates')
        print(d)
        name = i.get('data', {}).get('geofence_metadata', {}).get('name')
        print(name)
    return render_template("webhooks.html",  name = name, a = a, d =d)

В приведенном выше имени кода также есть значения None, поэтому, когда я пытаюсь вернуть его индивидуально, отображается TypeError: объект 'NoneType' не может быть повторен. Предположим, что если я возвращаю те значения, которые не имеют значений None, он возвращается, но отображает только первое значение. HTML код

{% for i in d %}
{{ i }} 
{% endfor %}<br />

Эта jinja работает для всех значений, но мне нужны отдельные значения, которые я получаю в flask:

<table>   
<th>           
{% for item in a %} 
</th>
<tr>
<td><th>   {% for key, value in item.items() %} </th>  </td>
<td><span>{{ key }} : {{ value }}</span> </td>
<br />
<td>{% endfor %}</td>
<td>{% endfor %}</td>
</tr>   
</table>
** Ожидаемый результат ** Должны быть возвращены все значения, включая значения None, которые я получаю в flask, чтобы я мог отобразить на странице HTML

Ответы [ 2 ]

0 голосов
/ 01 августа 2020

Вы можете использовать jinja для рендеринга шаблона.

Используя указанный ниже псевдокод, вы можете заполнить JSON данными:

{% for key, value in a %}        
  <span>{{key}} : {{value}}</span>
{% endfor %}
0 голосов
/ 01 августа 2020

Что выводится:

print(request.data)
print(request.form)
print(request.json)
print(request.get_json())  

?

ОБНОВЛЕНИЕ:

a - это список. Так что попробуйте:

{% for item in a %} 
    {% for key, value in item.items() %}        
        <span>{{ key }} : {{ value }}</span><br />
    {% endfor %}
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...