Я хочу напечатать вывод консоли python на странице Html в Flask. Пожалуйста, помогите мне сделать то же самое. Я сделал три файла. app.py, index.html и result.html.
Мой app.py:
for i in image_path_list:
j=j+1
if i in duplicate:
continue
else:
print(i+" "+str(count[j])+"\n")
return render_template('results.html', file_urls=file_urls)
if __name__ == '__main__':
app.run()
Это мой результат.html
<h1>Hello Results Page!</h1>
<a href="{{ url_for('index') }}">Back</a><p>
<ul>
{% for file_url in file_urls %}
<li><img style="height: 150px" src="{{ file_url }}"></li>
{% endfor %}
</ul>
1) count
не является функцией python. Вместо этого используйте enumerate
.
2) Вы используете переменную i
во вложенной итерации, а это означает, что вторая будет переопределять значение самой внешней, которая нарушит вашу итерацию.
Вы можете сделать это так:
file_urls = []
for count, image_path in enumerate(image_path_list):
if image_path not in duplicate:
file_urls.append(str(count) + ". " + image_oath)
return render_template('results.html', file_urls=file_urls)
или же:
file_urls = [". ".join(str(count),image_path) for count, image_path in enumerate(image_path_list) if image_path not in duplicate]
return render_template('results.html', file_urls=file_urls)
или даже:
return render_template('results.html', file_urls=[".".join(str(count),image_path) for count, image_path in enumerate(image_path_list) if image_path not in duplicate])
Тем не менее, я рекомендую использовать первый, поскольку он более читабельным.
Дело в том, что Python действительно проще, чем C, и вам не понадобится много времени, пока вы не привыкнете к нему :)