យើងបានដឹងរួចមកហើយថា កញ្ចប់ Bottle ប្រើប្រាស់ភាសា SimpleTemplate Engine (STPL) សំរាប់សរសេររៀបចំបង្កើតទំរង់ទំព័រ HTML ទាំងឡាយ ដែលមានប្រភេទជាឯកសារ tpl មុននឹងយកឯកសារទាំងនោះទៅបញ្ចូលទិន្នន័យនិង render អោយក្លាយទៅជាទំព័រ HML យ៉ាងពិតប្រាកដ ដើម្បីបញ្ជូនទៅអោយ browser ។ លើសពីនេះទៀត កញ្ចប់ Bottle ក៏អនុញ្ញាតអោយយើងអាចប្រើប្រាស់ភាសាផ្សេងៗទៀតបានដែរ តាមរយៈ plugin ។
ជាទូទៅ ភាសា STPL គឺជាភាសា Python ដែលត្រូវបានយកទៅកែតំរូវសំរាប់ជាជំនួយក្នុងការសរសេរកូដជាភាសា HTML ។ ដូចនេះ សំរាប់អ្នកចេះភាសា Python គឺគ្មានរឿងអ្វីពិបាកឡើយ ក្នុងការប្រើប្រាស់ភាសា STPL សំរាប់សរសេរតាក់តែងទំរង់នៃឯកសារ HTML ។
ដំបូងបង្អស់ នៅក្នុងភាសា STPL គ្រប់ expression ទាំងអស់ត្រូវស្ថិតនៅក្នុងសញ្ញា {{ }} ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
#main.py
from bottle import route, run
from controllers import index
@route('/')
def main():
kargs = {"siteTitle":"Khmer Web", "message":"Web programming in Python!"}
return index.render(**kargs)
run(host='localhost', port=9000, debug=True, reloader=True)
#\controllers\index.py
from bottle import template
def render(**kargs):
return template('index', data=kargs)
<!--c:\bottle\views\index.tpl-->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>{{data['siteTitle']}}</title>
</head>
<body>
<h1>{{data['message']}}</h1>
</body>
</html>
ដោយហេតុថា STPL ជា template language អាស្រ័យហេតុនេះ យើងអាចប្រើប្រាស់ភាសា Python លាយឡំជាមួយនឹងភាសា HTML បាន ដោយគ្រាន់តែដាក់សញ្ញា % នៅដើមបន្ទាត់ដែលជាភាសា Python និងឬប្រើប្រាស់សញ្ញា <% %> សំរាប់ខ័ណ្ណចែក block ជាភាសា Python ។
% name = "Bob" # a line of python code
<p>Some plain text in between</p>
<%
# A block of python code
name = name.title().strip()
%>
<p>More plain text</p>
លើសពីនេះទៀត statement នៅក្នុងភាសា STPL ត្រូវបញ្ចប់ទៅដោយពាក្យថា end ហើយ identation គ្មានឥទ្ធិពលអ្វីឡើយ។
<%
if some_condition:
some_operation()
elif some_other_condition:
some_other_operation()
else:
yet_another_operation()
if yet_another_condition:
some_more_stuff()
end
end
%>