PythonのFlaskでappコンテキストのエラーの解決方法
PythonのFlaskを触っているとrender_templateの関数でRuntimeError: Working outside of application context.というエラーが出た。プログラミング初心者なので始めは何のことやらわからかったが、調べるとFlaskの関数はFlaskのアプリケーションコンテキストの中でしか実行できないらしい。
つまり、
@main.route('/test')
def test():
index_html = render_template("index.html")
return index_html
上記のコードは実行できるが
index_html = render_template("index.html")
@main.route('/test')
def test():
return index_html
このコードはrender_templateがコンテキストの外にあるのでエラーとなる。
どうしてもルーティングや他のコンテキスト内で実行したいときは
with app.app_context():
# ここに書く
このwithの中に書くとエラーが出ずに実行できる。