យើងបានដឹងរួចមកហើយថា កញ្ចប់ 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)
<!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>{{data['message']}}
</body> </html>
Web programming in Python!
ដោយហេតុថា STPL ជា template language អាស្រ័យហេតុនេះ យើងអាចប្រើប្រាស់ភាសា Python លាយឡំជាមួយនឹងភាសា HTML បាន ដោយគ្រាន់តែដាក់សញ្ញា % នៅដើមបន្ទាត់ដែលជាភាសា Python និងឬប្រើប្រាស់សញ្ញា <% %> សំរាប់ខ័ណ្ណចែក block ជាភាសា Python ។
% name = "Bob" # a line of python codeលើសពីនេះទៀត statement នៅក្នុងភាសា STPL ត្រូវបញ្ចប់ទៅដោយពាក្យថា end ហើយ identation គ្មានឥទ្ធិពលអ្វីឡើយ។Some plain text in between
<% # A block of python code name = name.title().strip() %>More plain text
<% 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 %>