gseek의 flask 강좌를 공부하며 학습한 내용을 공유하고 소스를 공유하고자 포스팅합니다.

 

include 기능 및 super 코드를 학습했는데 잘 안되는 부분은 삭제를 했습니다.

 

template 상속은 

   {% extends "<부모템플리트 이름>" %}

   {% block %} 대체할 코드 {% endblock %}

 

=====  app.py  ====

from flask import Flask, render_template

app=Flask(__name__)

 

@app.route("/")

def temp_test():

    return render_template("super.html",my_string="템플릿 테스트",my_list=[11,22,33,44,55,66,77])

 

if __name__=="__main__":

   app.run()

 

====== super.html ====

{% block content %}

  <h4>자식 템플릿의 시작</h4>

  <br/>

  <p>My String : {{my_string}}</p>

  <p>리스트 값:{{my_list[2]}}</p>

  <p>전체 리스트</p>

  <ul>

     {% for i in my_list%}

     <li>{{i}}</li>

     {% endfor%}

  </ul>

  <h4>자식 템플릿의 끝</h4>

 {% block footer %}

  {{ super()}}

 {% endblock footer %}

{% endblock content%}

 

===nav.html =====

 

<nav class="navbar navbar-inverse" role="navigation">

      <div class="container-fluid">

         <div class = "navbar-header">

           <a clas="navbar-brand" href="/">Logo!</a>

         </div>

      </div>

      <div class = "collapse navbar-collapse">

        <ul class="nav navbar-nav">

          <li class="active"><a href="#">메뉴1</a></li>

          <li><a href="#">메뉴2</a></li>

          <li><a href="#">메뉴3</a></li>

          <li><a href="#">메뉴4</a></li>         

        </ul>

        <form class="navbar-form navbar-left" role="search">

           <div class="form-group">

             <input type="text" class="form-control" placeholder="검색하기">

           </div>

           <button type="submit" class = "btn btn-default">확인</button>

        </form>

        <ul class = "nav navbar-nav navbar-right">

           <li><a href="#">회원가입</a></li>

           <li class="dropdown">

              <a href="#" class="dropdown-toggle" data-toggle="dropdown">사용자<b class"caret"></b></a>

              <ul class="dropdown-menu">

                 <li><a href="#">나의 프로필</a></li>

                 <li><a href="#">주문내역</a></li>

                 <li class="divider"></li>

                 <li><a href="#">로그인</a></li>

              </ul>

            </li>

        </ul>

      </div>

    </nav>

 

==== layout.html ====

<!DOCTYPE html>

  <head>

    <title>Flask Template Example</title>

    <meta name="veiwport" content = "width=device-width, initial-scal=1.0">

   

  </head>

    <style type="text/css">

      h3 {color:blue}

      h4 {color:red}

      .footer{color:green}

    </style>

  <body>

  {% include 'nav.html'%}

   {% block heading %}

    <h1>jinja super test</h1>

   {% endblock heading %}

 

    <div class ='wrap'>

       <h3>기본 템플릿</h3>

       <br/>

       {% block content %}{% endblock content %}

       <br/>

       <h3> 기본 템플릿</h3>

       <br/>

       <div class = "footer">

         {% block footer%}

             추가된 footer 영역

         {% endblock footer%}

    </div>

   

   

  </body>

</html>

 

+ Recent posts