[컴][웹] 구글 앱 엔진에서 template 사용하기–python


google app engine(GAE) 에서 사용하는 webapp2 framework 에서 template 을 사용할 수 있다.

template 에서 쓰일 variable 들을 아래와 같이 정의 해서
template.render()
함수로 전달한다. 그러면 html template 을 불러오는데, html template 에서 변수들은 {{ var_name }} 이렇게 사용한다.
아래 그림을 참고하자.

image



helloworld.py + interestCal.html
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import cgi
import os
import webapp2

from google.appengine.api import users
from google.appengine.ext.webapp import template


class MainPage(webapp2.RequestHandler):

    def get(self):
        
                
        template_values = {
            'title': '이자수익에 대한 세금 계산',
            'deposit': '예금(원)',
            'interest_rate': '연이율(원)',
            'interest_before_tax': '세전이자(원)',
            'tax_rate': '세율(%)',
            'real_tax_rate': '세후이율(%)',
            'interest_after_tax': '세후이자(원)'
        }

        # os.path.dirname(__file__) == current directory
        path = os.path.join(os.path.dirname(__file__), 'interestCal.html')
        self.response.out.write(template.render(path, template_values))


    

'''
    debug = True
    shows the info when the server encounter an error
'''
app = webapp2.WSGIApplication([('/', MainPage)],
                              debug=True)




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html>
<head>
<title>{{ title }}</title>
<script type="text/javascript" 
  src="https://ajax.googleapis.com/ajax/libs/mootools/1.4.5/mootools.js">
</script>
<script type="text/javascript" src="./js/interestCal.js"></script>

<style type="text/css">
.title {
    font-size: 13px;
  margin:25px 50px 75px 50px;
    
    background-color: white;
}

</style>

</head>
<body>

<table>
<tr>
  <td>
  <span class='title'>{{ deposit }}</span>
  <span class='title'>{{ interest_rate }}</span>
  <span class='title'>{{ interest_before_tax }}</span>
  <span class='title'>{{ tax_rate }}</span>
  <span class='title'>{{ real_tax_rate }}</span>
  <span class='title'>{{ interest_after_tax }}</span>
  </td>
</tr>
<tr>
  <td>
  <input type="text" id="deposit" class="calclass"/>
  <input type="text" id="interestrate" class="calclass"/>
  <input type="text" id="interestB4tax" class="calclass"/>
  <input type="text" id="taxrate" class="calclass"/>
  <input type="text" id="realtaxrate" class="calclass"/>
  <input type="text" id="interestaftertax" class="calclass"/>
  </td>
</tr>

<div><input type="submit" value="Calculate" id="calculate"></div>

</body>
</html>


댓글 없음:

댓글 쓰기