_ @app.route('/view', methods=['GET', 'POST'])
def view_notifications():
posts = get_notifications()
return render_template("frontend/src/view_notifications.html", posts=posts)
_
私の_project/backend/src/app.py
_にはこのコードがあります。 _project/frontend/src/view_notifications.html
_にあるテンプレートをどのように参照しますか?_..
_を使用しようとしましたが、パスが見つからないと言っています。これを行うべき別の方法はありますか?
_[Tue Jun 23 12:56:02.597207 2015] [wsgi:error] [pid 2736:tid 140166294406912] [remote 10.0.2.2:248] TemplateNotFound: frontend/src/view_notifications.html
[Tue Jun 23 12:56:05.508462 2015] [mpm_event:notice] [pid 2734:tid 140166614526016] AH00491: caught SIGTERM, shutting down
_
Flaskはtemplates/frontend/src/view_notifications.html
でテンプレートファイルを探しています。テンプレートファイルをその場所に移動するか、デフォルトのテンプレートフォルダを変更する必要があります。
Flask docsによると、テンプレートに別のフォルダーを指定できます。アプリのルートにあるtemplates/
がデフォルトです:
import os
from flask import Flask
template_dir = os.path.abspath('../../frontend/src')
app = Flask(__name__, template_folder=template_dir)
更新:
Windowsマシンで自分でテストした後、テンプレートフォルダーの名前はtemplates
である必要があります。これは私が使用したコードです:
import os
from flask import Flask, render_template
template_dir = os.path.dirname(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))
template_dir = os.path.join(template_dir, 'frontend')
template_dir = os.path.join(template_dir, 'templates')
# hard coded absolute path for testing purposes
working = 'C:\Python34\pro\\frontend\\templates'
print(working == template_dir)
app = Flask(__name__, template_folder=template_dir)
@app.route("/")
def hello():
return render_template('index.html')
if __name__ == "__main__":
app.run(debug=True)
この構造では:
|-pro
|- backend
|- app.py
|- frontend
|- templates
|- index.html
'templates'
のインスタンスを'src'
に変更し、テンプレートフォルダーの名前を'src'
に変更すると、同じエラーOPが受信されました。