Уже давно я пытаюсь представить список словарей как вывод json.
вот мой model.py:
class User(db.Model):
"""
class to create users
"""
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def to_dict(self):
return dict([(k, getattr(self, k)) for k in self.__dict__.keys() if not k.startswith("_")])
и в view.py:
@app.route('/user', methods=['GET', 'POST'])
def search():
datas = User.query.all()
results = []
for result in datas:
results.append(result.to_dict())
if request.method == 'POST':
query = request.form['Search']
return redirect((url_for('search_results', query=query)))
return render_template('search_results.html', results=results)
в search.html:
{% extends "layout.html" %}
{% block content %}
{% for result in results %}
<li>{{ result }}</li>
{% endfor %}
{% endblock content %}
Вопрос:
Мой вопрос заключается в том, как показать список словарей в моем html-шаблоне в формате json.
Я знаю, что с return jsonify(results)
у меня может быть маршрут со списком форматов json, но как привести его к чему-то вроде return render_template('search_results.html', results=json.dumbs(results))
Ожидание:
Я ожидаю что-то вроде:
[
{'id': 1,
'username ': JackS,
'email':'demo@gmail.com'},
{'id': 2,
'username ': RossS,
'email':'x@gmail.com'},
....
]