Rental Bicycle App: Create Template File

នៅ​ក្នុង​កម្មវិធី​គេហទំព័រ ដោយ​ប្រើប្រាស់​កញ្ចប់ Bottle យើង​អាច​បង្កើត​ទំព័រ HTML ផ្សេង​ៗ តាម​រយៈ​ការប្រើប្រាស់​ template engine មួយ​ប្រភេទ​មាន​ឈ្មោះ​ថា SimpleTemplate Engine (STPL) ដែល​មាន​រួច​ជា​ស្រេច​នៅ​ក្នុង​កញ្ចប់ Bottle ។ យ៉ាងណាម៉ិញ ដោយ template engine នេះ​ត្រូវ​បាន​បង្កើត​ឡើង​ដោយ​យក​លំនាំ​តាម​ភាសា Python ដូចនេះ​វា​ជា​រឿង​ងាយស្រួល​មួយ​សំរាប់​អ្នក​ចេះ​ភាសា Python ក្នុង​ការប្រើប្រាស់​ template engine នេះ​ដោយ​មិន​ចាំបាច់​ចំណាយ​ពេល​ច្រើន​ក្នុង​ការស្វែង​យល់​ពី​ភាសា​មួយ​នេះ​ឡើយ​។ មួយវិញទៀត STPL ផ្តល់​លទ្ធភាព​អោយ​យើង​អាច​បង្កើត​ទំព័រ HTML ព្រម​ទាំង​បញ្ចូល​ទិន្នន័យ​ទៅ​ក្នុង​នោះ​បាន​យ៉ាង​ងាយ​ស្រួល​ជា​ទីបំផុត​ បើ​ប្រៀបធៀប​ទៅនឹង​ការប្រប្រាស់​ភាសា HTML ដោយ​ផ្ទាល់​។

<!--\views\index.tpl-->
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    <title>{{data['site_title']}}</title>
  </head>
   
  <body>
    <h1>{{data['message']}}</h1>
  </body>
</html>

មួយវិញទៀត នៅ​ក្នុង​កម្មវិធី​គេហទំព័រ ដោយ​ប្រើប្រាស់​កញ្ចប់ Bottle ការស្វែង​រក​ឯកសារ​ដែល​ត្រូវ​បាន​បង្កើត​ឡើង​ដោយ​ប្រើប្រាស់ template engine និង​ដែល​ត្រូវ​គេ​ហៅ​ថា​ជា template ត្រូវ​ធ្វើ​ឡើង​នៅ​ក្នុង​កញ្ចប់​មួយ​មាន​ឈ្មោះ​ថា views ជាមុន​សិន បើ​សិន​ជា​មាន មុន​នឹង​ស្វែង​រក​ឯកសារ​ប្រភេទ​នេះ​នៅ​ទីកន្លែង​ផ្សេង​ៗ​ទៀត​។ អាស្រ័យ​ហេតុ​នេះ យើង​អាច​បង្កើត​ថត​មួយ​មាន​ឈ្មោះ​ថា views សំរាប់​រក្សា​ឯកសារ​មាន​ប្រភេទ​ដូច​ខាង​លើ​នេះ​ទុក​ដោយ​ឡែក​មួយ​កន្លែង​បាន​។

យ៉ាងណាម៉ិញ ការយក​ការយក​ឯកសារ template មក​បញ្ចូល​ទិន្នន័យ​និង​បំប្លែង​អោយ​ទៅ​ជា​ទំព័រ HTML ត្រូវ​ធ្វើ​ឡើង​តាម​រយៈ​ក្បួន​ខ្នាត​ដែល​ជា controller និង​ដែល​គេ​និយម​រក្សា​វា​ទុក​នៅ​ក្នុង​ថត​មួយ​ឈ្មោះ​ថា controllers ។

#\controllers\index.py
from bottle import template

def render(**kargs):
  return template('index', data=kargs)

ចុង​ក្រោយ​បង្អស់ ដើម្បី​អោយ​ឯកសារ​ដែល​ជា template ទាំងឡាយ​អាច​ត្រូវ​យក​ទៅ​បញ្ចូល​ទិន្នន័យ​និង​កែច្នៃ​អោយ​ទៅ​ជា​ឯកសារ HTML យើង​ចាំបាច់​ត្រូវ import បណ្តា​ឯកសារ​ដែល​ជា controller ជាប់​ទាក់ទង​នឹង​ឯកសារ template ទាំងនោះ យក​មក​ប្រើ​នៅ​ក្នុង​ឯកសារ​ដែល​ជា​កម្មវិធី​មេ​របស់​យើង ដោយ​ធ្វើ​ដូច​ខាង​ក្រោម​នេះ៖​។

#\app.py
import os
from bottle import route, run
from controllers import index
  
@route('/')
def main():
  kargs = {"site_title":"Rental Bicycle App", "message":"កម្មវិធី​គេហទំព័រ!"}
  return index.render(**kargs)
  
if 'DYNO' in os.environ:
  run(host='0.0.0.0', port=os.environ.get('PORT', 9000))
else: 
  run(host='localhost', port=9000, debug=True, reloader=True)