នៅក្នុងកម្មវិធីគេហទំព័រ ដោយប្រើប្រាស់កញ្ចប់ Bottle យើងអាចបង្កើតទំព័រ HTML ផ្សេងៗ តាមរយៈការប្រើប្រាស់ template engine មួយប្រភេទមានឈ្មោះថា SimpleTemplate Engine (STPL) ដែលមានរួចជាស្រេចនៅក្នុងកញ្ចប់ Bottle ។ យ៉ាងណាម៉ិញ ដោយ template engine នេះត្រូវបានបង្កើតឡើងដោយយកលំនាំតាមភាសា Python ដូចនេះវាជារឿងងាយស្រួលមួយសំរាប់អ្នកចេះភាសា Python ក្នុងការប្រើប្រាស់ template engine នេះដោយមិនចាំបាច់ចំណាយពេលច្រើនក្នុងការស្វែងយល់ពីភាសាមួយនេះឡើយ។ មួយវិញទៀត STPL ផ្តល់លទ្ធភាពអោយយើងអាចបង្កើតទំព័រ HTML ព្រមទាំងបញ្ចូលទិន្នន័យទៅក្នុងនោះបានយ៉ាងងាយស្រួលជាទីបំផុត បើប្រៀបធៀបទៅនឹងការប្រប្រាស់ភាសា HTML ដោយផ្ទាល់។
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!--\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 ។
1 2 3 4 5 | #\controllers\index.py from bottle import template def render( * * kargs): return template( 'index' , data = kargs) |
ចុងក្រោយបង្អស់ ដើម្បីអោយឯកសារដែលជា template ទាំងឡាយអាចត្រូវយកទៅបញ្ចូលទិន្នន័យនិងកែច្នៃអោយទៅជាឯកសារ HTML យើងចាំបាច់ត្រូវ import បណ្តាឯកសារដែលជា controller ជាប់ទាក់ទងនឹងឯកសារ template ទាំងនោះ យកមកប្រើនៅក្នុងឯកសារដែលជាកម្មវិធីមេរបស់យើង ដោយធ្វើដូចខាងក្រោមនេះ៖។
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #\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 ) |