我對Flask比較新,但我已經發現需要使用藍圖。但是,在我的藍圖中,我試圖渲染模板,但出現錯誤。Flask渲染模板上下文在Blueprint中是無的
當迷上了作爲一個WSGI應用(Dreamhost上),該render_template函數返回此錯誤:
File ".../app/ui/__init__.py", line 95, in index
response = make_response(render_template('index.html', **data))
File ".../flask/templating.py", line 123, in render_template
ctx.app.update_template_context(context)
AttributeError: 'NoneType' object has no attribute 'app'
然而,當我在調試模式下直接調用app.py它完美! (下同)
python app/app.py
在app.py:
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')
編輯:渲染模板:
@ui_blueprint.route('/', methods=['GET'])
@ui_blueprint.route('/home', methods=['GET'])
def index():
data = {
'title': 'Index'
}
response = make_response(render_template('index.html', **data))
return response
編輯2:ctx
是:
None
在WSGI應用情況- 在直接調用情況
任何想法如何我可能會解決這個錯誤<RequestContext 'http://aaa.bbb.com:5000/' [GET] of __init__>
?謝謝!
檢查你的代碼中的'ctx'對象,它有什麼,也顯示你創建這個對象的代碼部分。 – avasal
你需要在這裏使用請求上下文。請閱讀http://flask.pocoo.org/docs/reqcontext/ – codegeek
@codegeek是的,模板應該使用請求上下文。但是,如何確保它在此實例中傳遞給render_template? – arboc7