Я пишу что-то на веб-питоне с использованием фляги, я в основном отображаю все свои записи из базы данных в виде списка через шаблон фляги в цикле for.
Теперь я хочу вызвать Spotify API и отобразить изображение обложки из Spotify API рядом с каждым из списков воспроизведения, но я не могу понять, как сопоставить идентификатор и сделать вызов все в цикле for
Могу ли я сделать вызов API из Flask или, возможно, вызвать функцию с вызовом в этом цикле? Я также пробовал это с вызовом jQuery AJAX, но отображаемое изображение было одинаковым для всех элементов из последнего элемента из базы данных
import os
import requests
import json
from dotenv import load_dotenv
from datetime import datetime
##loading credenditls from seperate file
from credentials import auth_data, auth_string
from flask import Flask, redirect, render_template, request, session, url_for
from flask_pymongo import PyMongo
from bson.objectid import ObjectId
#enviorement virables loading
load_dotenv()
DBNAME = os.getenv("DBNAME")
DATABASEURI = os.getenv("URI")
#calling api for spotify token
token_response = requests.post('https://accounts.spotify.com/api/token',
data = auth_data,
headers = auth_string,)
token_response_data = token_response.json()
##token
the_token = token_response_data['access_token']
app = Flask(__name__)
#Connecting to database
app.config["MONGO_DBNANE"] = DBNAME
app.config["MONGO_URI"] = DATABASEURI
mongo = PyMongo(app)
def get_playlist_image(id):
image_response = requests.get('https://api.spotify.com/v1/playlists/' + id + '/images',
headers={'Authorization':'Bearer '+ the_token})
image_response_data = image_response.json()
image_url = image_response_data[0]['url']
return image_url
@app.route('/')
@app.route('/home')
def display():
the_playlists = mongo.db.playlists.find()
for list in the_playlists:
spotifyid = list['spotify_id']
the_image_url = get_playlist_image(spotifyid)
return render_template("home.html", playlists=mongo.db.playlists.find(), image_url=the_image_url, spotifyid = list['spotify_id']
)