2015-01-27 2 views
1

저는 거의 모든 템플릿에 사용되는 사이드 바 코드를 포함시키는 가장 좋은 방법을 찾으려고합니다.여러 템플릿에 사이드 바를 포함하는 올바른 방법은 무엇입니까?

@app.route('/') 
@app.route('/index') 
def index(): 
    # some stuff for my index page... 
    form_sidebar = sidebar() 
    return render_template('index.html', indexdata=indexdata, form_sidebar=form_sidebar) 

내 사이드 ​​바 형태는

def sidebar(): 
    form_sidebar = MySideBarForm() # defined in forms.py 
    # do some sql stuff to initialize the form ... 
    return form_sidebar 

sidebar.html으로 작성됩니다 sidebar()로부터받은 데이터를 사용하여 예를 들어, 내 index.html는보기가

{% extends "base.html" %} 
    Hello, ... 
    {% include 'sidebar.html' %} 
{% endblock %} 

입니다. 나는 이런 식으로 계속하면

다음 내보기 기능의 모든 하나는 모든 varialbe form_sidebar 따라서 통과해야한다, sidebar()를 호출해야한다, 모든 템플릿은 {% include 'sidebar.html' %}해야합니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 나는 이상적으로 내 base.html{% include 'sidebar.html 일 것이라고 생각하지만, 나는 그 데이터를 form_sidebar 데이터로 제공하는 방법을 모른다.

답변

2

form_sidebar을 전체적으로 g에 포함시킬 수 있습니다. 실수로 템플릿에 포함 된 경우 내재적으로 사용할 수 있습니다.

g을 피드하려면 @before_request 장식 기능에서 전체적으로 수행 할 수 있으며 기본 템플릿의 사이드 바 템플릿을 포함하여 작업을 완료해야합니다.

+0

감사합니다. 이것이 제가 찾고 있던 것입니다. – theQman