Как передать данные json в мой html-файл из моего Python-файла .py? - PullRequest
0 голосов
/ 15 декабря 2018

В настоящее время я пытаюсь бесплатно интегрировать сторонние API в мой веб-сайт.Я использую Python, который использует колбу, поэтому я буду использовать шаблоны рендеринга. Как передать эти данные через мой шаблон?

Ниже приведен метод в моем классе .py, в котором также установлены упакованные запросы.ПРИМЕЧАНИЕ. Я использовал недопустимый ключ API только для мер безопасности.

@app.route('/Api', methods=['POST'])
def index():

    # BBC news api 
    main_url = " https://newsapi.org/v1/articles?source=bbc-news&sortBy=top&apiKey=123"

    # fetching data in json format 
    open_bbc_page = requests.get(main_url).json() 

    # getting all articles in a string article 
    article = open_bbc_page["articles"] 

    # empty list which will  
    # contain all trending news 
    results = [] 

    for ar in article: 
        results.append(ar["title"]) 

    for i in range(len(results)): 

        # printing all trending news 
        print(i + 1, results[i])                  

return render_template('home_page.html')

if __name__ == '__main__':
    app.run(debug=True)

Кроме того, как мне затем отобразить это в моем html-файле?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Передайте переменную articles в свой шаблон.

return render_template('home_page.html, articles = articles )’

Затем запустите циклы for в своем шаблоне.Пример:

 {%for ar in articles%}

Do stuff

{%endfor%}
0 голосов
/ 15 декабря 2018

Метод render_template принимает параметры **context после первого параметра, которые являются переменными, которые должны быть доступны в контексте шаблона.Например,

return render_template('home_page.html', results=results)

Вы можете анализировать ответ, полученный на запросы, так, как вам хочется.

Если вы возвращаете список, вы можете перебирать список вшаблон с чем-то вроде:

{% for result in results %}
    <p>{{result}}</p>
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...