Как сделать так, чтобы данные, полученные из API в flask, отображались в новом html-файле?

#python #html #json #api #flask

Вопрос:

Я обработал данные, полученные из некоторого API, по маршруту flask, извлек необходимый json и затем сохранил его в словаре. Теперь, как мне сделать так, чтобы обработанные данные отображались в новом HTML-файле? Является ли это хорошим способом предварительной обработки данных в функции flask, что делать, если предварительная обработка занимает много шагов?

Код на python в колбе x.py :

 @app.route('/test', methods = ['GET'])
def get_from_api():
    url = "https://xxxx"
    API_KEY = "xxxx"
    params = {
    'token' : API_KEY
    }
    response = requests.get(url, params).json()
  
    city = response['city']
    state = response['region']
    postal = response['postal']
    conutry = response['country']
    location = response['loc']
    data = {
        "city" : city,
        "state" : state,
        "postal" : postal,
        "country" : conutry,
        "location" : location
    }

 

Далее идет x.html для отображения данных

 <div class = "element_val">
                <li><div id = "city">null</div></li>
                <li><div id = "state">null</div></li>
                ... 
                <li><div id = "location">null</div></li>
</div>
 

Как извлечь данные в колбе и поместить данные в html, а также сделать так, чтобы html отображался '/test' ?

Ответ №1:

 @app.route('/test')
def test_route():
    user_details = {
        'name': 'John',
        'email': 'john@doe.com'
    }

    return render_template('test.html', user=user_details)
 
 <!DOCTYPE html>
<html>
    <head>
        <title>test</title>
    </head>
    <body>
        <!-- use {{}} to access the render_template vars-->
        <p>{{user.name}}</p>
        <p>{{user.email}}</p>
    </body>
</html>