为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Flask 中使用 AJAX 遍历列表

如何在 Flask 中使用 AJAX 遍历列表

汪汪一只猫 2021-08-14 16:26:00
问题我正在尝试在 Flask 中使用 AJAX 显示图像文件。更具体地说,我想在单击按钮后显示图像,并在再次单击按钮后显示下一张图像(如幻灯片)。图像的文件名存储在我的数据库中。我查询数据库以获取当前用户的文件名列表,并将每个文件名与路径的其余部分(图像存储在磁盘上的路径)组合以显示图像。到目前为止,我设法获得了当前用户的第一张图片。但是,我想不出一种方法来跟踪下一个要显示的图像。我尝试使用全局变量作为计数器 ( file_counter),它应该用作索引。每次发出ajax请求以获取下一个文件时,我想将file_counter增加1,但计数器不会在后续调用时增加,也不会引发错误。问题我需要如何初始化全局变量 (file_counter) 以使其在多个调用中存储其值?此外,使用全局变量是这样做的正确方法吗?HTML<div id="ajax-field"></div><button class="btn btn-block"  id="next-button"><p>Next Image!</p></button>阿贾克斯:$('#next-button').click(function(){         $("#ajax-field").text("");         $.ajax({                        url: "/get_data",                        type: "POST",                        success: function(resp){                            $('#ajax-field').append(resp.data);                        }                    });                        });路由:global filenamesglobal file_count@app.route("/get_data", methods=['POST'])def get_data():    try: # Is intended to fail on the first run in order for the global variables to be initialized. However it keeps failing on subsequent runs        display_img = filenames[file_count]        file_count +=1    except:        filenames = []        # current_user.uploads returns all file-objects of the current user        user_uploads = current_user.uploads        for file in user_uploads:            # file.filename returns the respective filename of the image            filenames.append(file.filename)        #filenames is now a list of filenames i.e. ['a.jpg','b.jpg','c.jpg'...]        display_img = filenames[0]        file_count = 1    path = "image_uploads/4_files/"+display_img    return jsonify({'data': render_template('ajax_template.html', mylist = path)})ajax_template.html:<ul>{% block content %}    <li>        <img id="selected-image-ajax" src="{{url_for('static',filename=mylist)}}"  class="img-thumbnail" style="display:block; margin:auto;"></img>    </li>{% endblock content %}</ul>
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信