2016-01-02 3 views
3

У меня небольшая проблема с использованием flask.jsonify функции для вывода форматированного ответа JSon из словаря ввода, как описано в here.Как правильно использовать jsonify() для вызова json?

Моего кода, кажется, возвращая объект ответа, вместо отформатированного JSON объект, который я хочу.

У меня есть

@app.route('/rparser', methods=['GET', 'POST']) 
def rparser(): 
    form = ParserForm(request.form) 
    if request.method=='POST': 
     result = jsonify(**dict) 
     return render_template('rparser.html', form=form, result=result) 
    else: 
     return render_template('rparser.html', form=form) 

где ДИКТ является словарем объект, возвращаемый из вызова функции.

И в моем шаблоне, у меня есть:

(form up here) 

{% if result %} 
    {{ result }} 
{% endif %} 

Это отображение:

ответ 135 байт [200 OK]

Как я сделал бы это вернуть JSON представительство, которое я ищу?

+0

Что с 'json.dumps'? –

+0

@ cricket_007 Я ищу, чтобы отобразить json довольно-напечатанный, который json.dumps не делает – thevises

+0

Что такое 'dict' здесь? Откуда берутся данные JSON? –

ответ

1

Вы можете использовать json.dumps так:

@app.route('/') 
def home(): 
return render_template(
    'index.html', 
    title='Home Page', 
    result=json.dumps({"a":[{"o":1},{"o":2}]}, sort_keys = False, indent = 2) 
) 

и просто отформатировать его в шаблоне так:

{% if result %} 
    <pre>{{ result }}</pre> 
{% endif %} 

Если это соответствует вашим ожиданиям. Я думаю, что jsonify используется для предоставления данных http.response, а не контекстных данных для шаблонов.

Посмотрите здесь jsonify: https://stackoverflow.com/a/13172658/1307985

+0

Цель состоит в том, чтобы json был довольно печатным. Как мне это сделать, с json.dumps? – thevises

+0

Я обновил свой ответ. Это должно дать вам какой-то довольно напечатанный json в шаблоне, но не цветной, конечно. Вы можете изменить отступ, чтобы получить более или менее отступ. –

+0

Чтобы он был цветным, есть много библиотек JavaScript, которые помогут. –

Смежные вопросы