Я пытаюсь загрузить изображение, основываясь на том, что пользователь выбирает в поле выбора.
html:
<div class='image-container' id='image'>
<h3>Index: {{ photo_index }}</h3>
<h3>Filename: {{ image }}</h3>
<img src="{{ url_for('images.static', filename=image) }} " id="the-photo">
</div>
<div class='button-container' id='buttons'>
<form action="" method="post">
<input type="hidden" name="prev-next-buttons">
<input type="submit" value="Show prev photo" name='prev_photo'>
<input type="submit" value="Show next photo" name='next_photo'>
<br/>
<input type="submit" value="Show random photo" name='random_photo'>
<button type='button' id='rotate-button' onclick="rotateMe('#the-photo')">Rotate Photo</button>
</form>
<h3>Choose image from list:</h3>
<form method="post">
<input type="hidden" name="photo-select">
<select id="select-image" onfocus='this.size=5;' onblur='this.size=1' onchange="this.size=1; this.blur(); this.form.submit()">
{% for eimage in image_list %}
<option {% if eimage == image %} selected {% endif %}
href = "{{ url_for('main', chosen_image=eimage) }}"
>
{{eimage}}
</option>
{% endfor %}
</select>
</form>
</div>
rout.py
CUR_PHOTO_INDEX = 0
images = os.listdir(IMAGE_FOLDER)
image_urls = create_urls(images)
image_urls.append('favicon.ico')
num_images = len(image_urls) - 1
@app.route("/", methods=["GET", "POST"])
def main(chosen_image="Penguins.jpg"):
# if request.method == "POST":
global CUR_PHOTO_INDEX
if request.method == "POST":
if 'prev-next-buttons' in request.form:
CUR_PHOTO_INDEX = return_index(request.form, CUR_PHOTO_INDEX)
# print("Showing index", CUR_PHOTO_INDEX)
elif 'photo-select' in request.form:
CUR_PHOTO_INDEX = image_urls.index(chosen_image)
# print("\n", indx, "\n")
print("\n", chosen_image, CUR_PHOTO_INDEX, "\n")
return render_template('index.html',
title="Local Image Viewer",
photo_index=CUR_PHOTO_INDEX,
image=image_urls[CUR_PHOTO_INDEX],
image_list=image_urls)
Я ожидаю, что когда пользователь выберет опцию из списка, он отправит это имя изображения (строка eimage
) на main()
, а затем найдет этот индекс в image_urls.index(chosen_image)
.Но всякий раз, когда я выбираю опцию, она просто снова и снова печатает «Penguins.jpg» и его индекс.
Что я пропускаю, чтобы отправить выбранное имя изображения в функцию main()
?