flaskをサーバで起動させ、リモートPCからwebアクセスしボタンを押すと、ベルのmp3が再生されるプログラムを作りました。
しかし、mp3が再生されたあと、アクセスしたpcではブラウザにInternal Server Errorと表示されてしまいます。flaskを実行しているサーバの方には主に以下の
ERROR in app: Exception on /program01 [GET] TypeError: The view function for 'get' did not return a valid response. The function either returned None or ended without a return statement. "GET /program01 HTTP/1.1" 500 -
というエラーメッセージが表示されています。
プログラムは以下の通りです。
python
1#flask_test.py 2from flask import Flask, render_template 3import playsound_bell 4 5app = Flask(__name__) 6 7 8@app.route('/') 9def hello(): 10 return render_template('layout.html', title='App') 11 12@app.route('/program01') 13def get(): 14 # ↓ 実行したいファイルの関数 15 return playsound_bell.main() 16 17if __name__ == "__main__": 18 app.run(host='0.0.0.0')
templatesのディレクトリにあるhtmlファイルは以下のlayout.htmlです。
layout.html
1<!doctype html> 2<html> 3 4<head> 5 <title>{{ title }}</title> 6</head> 7 8<body> 9 <form method="GET" action="/program01"> 10 <button type="submit">Start Program</button> 11 </form> 12</body> 13 14</html>
呼び出すプログラムは以下の通りです。
playsound.py
1import playsound 2 3def main(): 4 playsound.playsound('Doorbell.mp3') 5 6if __name__ == '__main__': 7 main()
どうやったら、エラーが表示されなくなるでしょうか?
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー