2013-01-07 1 views
5

나는 간단한 플라스크 응용 프로그램을 가지고 있으며 @ app.before_request를 사용하려고하지만 어떻게 든 작동하지 않습니다! 나는 이것에 관해 정확하게 생각하지 않을 것이라고 확신한다! 분명히 그것은 같은 것을 사용에 호출됩니다 :@ app.before_request를 호출하는 방법

return redirect(url_for('index')) 

을하지만 난 그것을 위해 호출해야합니다

return render_template('index.html') 

아무도 도와 드릴까요?

답변

6

아마도 일부 코드를 제공한다면 질문을 이해하는 것이 더 나을 것입니다.하지만 제가 이해한다면 요청 전에 템플릿을 렌더링하고 싶습니까?

before_request은 일부 기능을 호출하거나 요청 전에 일부 동작을 수행하는 데 사용됩니다. 그래서 기본적으로 제공되는 요청을 처리하기 위해 앱을 준비하는 것입니다. 예 : 데이터베이스 연결을 초기화하고 나중에 액세스 할 수 있도록 g 객체에 넣습니다. before_request 사용의

예 (같은 예를 들어 DB를 초기화)입니다 : 당신이 @app.before_request로 사용하는 경우

@app.before_request 
def before_request(): 
    g.db = connect_db() 

그래서 장식입니다. 뭔가 더 많은 것을 찾을 수 있습니다 Flask docs

하지만 또 다른 한가지는 요청 전에 바로 render_template을 원했기 때문입니다. 나는이 장소가 아닌보기에서 템플릿을 렌더링해야한다고 생각합니다. 요청을 앱과 뷰에 전달한 다음 템플릿을 렌더링합니다.

+0

안녕하세요 Ignas, 저는 실제로 요청 후에 템플릿을 렌더링하고 싶습니다! 'return redirect()'처럼 render_template()를'@ app.before_request'에 추가하고 싶습니다! 나는 지금 당장 (리다이렉션을 사용하여)이 문제를 해결할 수있다. – Amin