前提・実現したいこと
タイトルの通りですが、画像(jpgファイル)が入ったフォルダを対象にPythonで画像ファイルをリストとしてまとめ、それらの画像をWeb上で画像一覧として表示する動作を目指しています。
Pythonから送られてくるリストをHTMLで受け取り、リスト内の画像を表示していく。という手法がそもそもあっているのか、という問題もありますが。。
もし、何か良い手法がありましたら教えて欲しいです。
発生している問題・エラーメッセージ
現状、HTML側に送られてきたリストを受け取り処理するコードがかけていないので、エラーの原因はわかっているのですが、改善方法が分かりません。
TypeError: 'list' object is not callable The view function did not return a valid response. The return type must be a string, tuple, Response instance, or WSGI callable, but it was a list.
該当のソースコード
python
1# -*- coding: utf-8 -*- 2from flask import Flask 3import glob 4 5app = Flask(__name__) 6 7@app.route('/camera_capture') 8def capture(): 9 data=glob.glob('/media/pi/NAS/camera_data/*.jpg') 10 cap_data = [] 11 for i in data: 12 cap_data.append(i) 13 return cap_data
以下のHTMLは、上記に示したPythonファイルからrenderされています。
今回、問題なのは<script>以降の部分で、ここで呼び出している「/camera_capture」のURLに反応するHTMLが問題です。
HTML
1{% extends "layout.html" %} 2 3{% block title %} 4Camera 5{% endblock %} 6 7{% block headline %} 8{{ title }} 9{% endblock %} 10 11{% block content %} 12 <img src = "{{url_for('camera.predict')}}"> 13 <form><input type="button" value="取得画像を開く" onClick="win_open()"></form> 14 15 <script type="text/javascript"> 16 function win_open() { 17 window.open("/camera_capture","capture","width=600,height=450"); 18 } 19 </script> 20 21 <p><a href="/">BACK</a></p> 22{% endblock %} 23 24{% block footer %} 252020. 26{% endblock %}
以下が、「/camera_capture」に反応するHTMLファイルです。初めに記したPythonコードの紐付けられたファイルです。原因と思われる部分にコメントしています。
HTML
1{% extends "layout.html" %} 2 3{% block title %} 4Camera 5{% endblock %} 6 7{% block headline %} 8Camera Capture. 9{% endblock %} 10 11{% block content %} 12 <img src = "{{url_for('camera.capture')}}"> #ここが原因? 13 <p><a href="/">BACK</a></p> 14{% endblock %} 15 16{% block footer %} 172020. 18{% endblock %}
補足情報(FW/ツールのバージョンなど)
開発は、Flaskで行っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/07 13:06
2020/12/09 05:51