Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Jinja for循环中调用Python模块?_Python_Flask_Jinja2_Spotify_Spotipy - Fatal编程技术网

如何在Jinja for循环中调用Python模块?

如何在Jinja for循环中调用Python模块?,python,flask,jinja2,spotify,spotipy,Python,Flask,Jinja2,Spotify,Spotipy,我在Flask中有这个函数,我在其中搜索spotify: @app.route('/search', methods=['GET','POST']) def search(): data = sp.search(request.form['code']) api_url = data['tracks']['href'] items = data['tracks']['items'] for item in items: artist = sp.ar

我在Flask中有这个函数,我在其中搜索spotify:

@app.route('/search', methods=['GET','POST'])
def search():
    data = sp.search(request.form['code'])
    api_url = data['tracks']['href']
    items = data['tracks']['items']
    for item in items:
        artist = sp.artist(item['artists'][0]['uri'])
        image_url = artist['images'][2]['url']
    html = render_template('search.html',
                            artist_name=request.form['code'],
                            results=items,
                            api_url=api_url,
                            image_url=image_url)
    return html
这是我的html页面中的Jinja模板:

{% for artist in results %}
        <tr>
          <td>
            <img src="{{image_url}}" alt="{{image_url}}" class="bobby img-thumbnail img-circle">
            <a href="{{ url_for('artist', id=artist.id) }}">
              {{ artist.name }}
            </a>
          </td>
          <td>
            {{ artist.artists.0.name }}
          </td>
        </tr>
      {% endfor %}

我为所有的艺术家都画了同样的画。带spotipy模块的for循环是否应该在Jinja模板中?我如何才能做到这一点?

首先更新搜索功能:

@app.route('/search', methods=['GET','POST'])
def search():
    data = sp.search(request.form['code'])
    api_url = data['tracks']['href']
    items = data['tracks']['items']
    for item in items:
        artist = sp.artist(item['artists'][0]['uri'])
        item['image_url'] = artist['images'][2]['url'] # <-- change this line
    html = render_template('search.html',
                            artist_name=request.form['code'],
                            results=items,
                            api_url=api_url,
                            image_url=image_url)
    return html
然后你需要更新你的模板

<img src="{{artist.image_url}}" alt="{{artist.image_url}}" class="bobby img-thumbnail img-circle">

您是否尝试将img src艺术家['images'][2]['url']放入其中?看来你给每个艺术家都放了同样的图片,谢谢你的解决方案。我想弄明白为什么会这样?
<img src="{{artist.image_url}}" alt="{{artist.image_url}}" class="bobby img-thumbnail img-circle">