ការកំណត់ផ្លូវ & ការបង្ហាញ

ជាទូទៅ កម្មវិធី​គេហទំព័រដំណើរ​ការទៅ​ដោយ​មាន​​អ្នក​ចូល​មើល​គេហទំព័រ​ចុច​នេះ​ឬ​ចុច​នោះ ក្នុង​គោលបំណង​មើល​​ពត៌មាន​ណា​មួយ​នៅ​លើ​ទំព័រ​​ណា​មួយ​។ បាន​ន័យ​ថា កម្មវិធី​គេហទំព័រ​ក៏​ជា​កម្មវិធី​ឆ្លើយតប​ហេតុការណ៍​ (Event Driven Program) ដូច​ជា​កម្មវិធី​ផ្សេង​ៗ​ទៀត​ដែរ​ ពីព្រោះនៅ​ពេលដែល​អ្នក​​​ចូលមើល​គេហទំព័រ​ចុច​នេះ​ឬ​ចុច​នោះ ហេតុការណ៍​ខុស​ៗ​គ្នា​នឹង​កើត​មាន​​ឡើង ដែលទាម​ទារ​អោយ​មាន​ការឆ្លើយតប​ដ៏​សមស្រប​ណា​មួយ​ក្នុង​បរិបទ​ណា​មួយ​។

មួយវិញទៀត សំរាប់​អ្នក​អភិវឌ្ឍ​កម្មវិធី​គេហទំព័រ ទំព័រ​និមួយ​ៗ​មាន​អាស័យដ្ឋានដោយឡែករៀង​ៗ​ខ្លួន (URL) ហើយ​ការ​ចុច​របស់​អ្នក​ចូល​មើល​គេហទំព័រ​ គឺ​ជា «សំណើរ» (request) ​ស្នើ​សុំ​អោយ​កម្មវិធី​គេហទំព័រ​ «ឆ្លើយតប»​ (response) មក​វិញ​ដោយ​បង្ហាញ​ព័ត៌មាន​របស់​ទំព័រ​ដែល​មាន​អាស័យដ្ឋានដូច​ដែល​​អ្នក​ចូល​មើល​​បាន​ចុច​។

សរុបមក «សំណើរ» និង «ការឆ្លើយតប» គឺ​ជា​ប្រធានបទ​​ស្នូល​នៃ​កម្មវិធី​គេហទំព័រ​​ទាំងឡាយ​។ ដូចនេះ ​គោលបំណងសំខាន់បំផុត​នៃ​កម្មវិធី​គេហទំព័រ គឺ​ការដោះស្រាយ​បញ្ហានៅ​​ជុំវិញ​ «សំណើរ & ការឆ្លើយតប» នេះ​។

ដូច​បាន​លើក​ឡើង​រួច​មក​ហើយ​ថា សំរាប់​កម្មវិធី​គេហទំព័រ នៅ​ពេល​ដែល​អ្នក​ចូលមើល​ចុច​ចង់​មើល​ទំព័រ​ណា​មួយ អាស័យដ្ឋាន​ (URL) របស់​ទំព័រ​នោះ​ត្រូវ​បាន​បញ្ជូន​ទៅ​កាន់​កម្មវិធី​គេហទំព័រ​ដើម្បី​ពិនិត្យ​និង​ធ្វើការឆ្លើយតប​ដ៏​សម​ស្រប​ណា​មួយ។ ហើយ​ជាទូទៅ ការឆ្លើយតប​​គឺ​ជាការបង្ហាញ​ព័ត៌មាន​​​​ដែល​ទាក់ទង​និង​អាស័យដ្ឋាននោះ​នៅ​លើ​ browser ។ យន្តការពិនិត្យ​​​​មើល​អាស័យដ្ឋាន​ដើំម្បី​​ធ្វើការឆ្លើយតប​​​ដ៏​សម​ស្រប​​ណា​មួយ​នោះ​ ត្រូវ​គេ​អោយ​ហៅ​​​​ជា​ភាសា​អង់គ្លេសថា «routing» ដែល​យើង​អាច​ប្រើ​ពាក្យ​ខ្មែរ​ថា «ការកំណត់ផ្លូវ» សំរាប់បកប្រែ​ពាក្យ​នេះ​​បាន​។

ជាទូទៅ​ ការឆ្លើយតប​ទៅ​នឹង​សំណើរណា​មួយ​របស់​អ្នក​ចូល​​មើល​គេហទំព័រ គឺ​​ជាការបង្ហាញ​ព័ត៌មាន​នៅ​លើ browser ​​ទាក់​ទង​នឹង​អាស័យដ្ឋាន​ណា​មួយ​​ដែល​ជា​សំណើរ​របស់​អ្នកចូល​មើល​។ ហើយ​យន្តការ​បង្ហាញ​ព័ត៌មាន​នៅលើ​ browser ​​នេះ ត្រូវ​បាន​គេ​កំណត់​ឈ្មោះ​ជា​ភាសា​អង់គ្លេស​ថា «view» ដែលយើង​អាច​​កំណត់​យក​ពាក្យ​ខ្មែរ​ថា «ការបង្ហាញ» សំរាប់​បក​ប្រែ​ពាក្យ​នេះ​បាន​ដែរ​​។

យ៉ាងណាម៉ិញ នៅក្នុង​ផ្នែក​ទន់ Django ការបង្កើត​កម្មវិធីគេហទំព័រ​ណា​មួយ ទាមទារ​ចាំ​បាច់​ត្រូវ​បង្កើត​គំរោង​នៃ​កម្មវិធី​នោះ​ជា​មុន​សិន នៅ​ក្នុង​ថត​ណា​មួយ​នៅ​ក្នុង​កំព្យូទ័រ​របស់​យើង​។ ជាទូទៅ ថត​សំរាប់​ដាក់​គំរោង​នៃ​កម្មវិធី​គេហទំព័រ Django អាច​មាន​ឈ្មោះជា​អ្វី​ក៏​បាន​ដែរ អាច​មានឈ្មោះ​ថា​ជា django ជាដើម​។

បន្ទាប់​មក​ទៀត នៅ​លើ​បង្អួច​ខ្មៅ ដើម្បី​បង្កើត​គំរោង​នៃ​កម្មវិធី​គេហទំព័រ Django យើង​ចាំបាច់​ត្រូវ​ចូល​ទៅ​ក្នុង​ថត django នោះ និង​សរសេរ​បញ្ជា​ដូច​ខាង​ក្រោម​នេះ៖
django-admin startproject mysite

យើង​សង្កេត​ឃើញថា ឈ្មោះ​នៃ​គំរោង​កម្មវិធី​គេហទំព័រ​យើង​គឺ mysite ក៏ប៉ន្តែ​មិន​មែន​មាន​ន័យ​ថា យើង​ចាំបាច់​ត្រូវ​តែ​ដាក់​ឈ្មោះ​គំរោង​កម្មវិធី​គេហទំព័រ​ថា​ជា mysite នោះ​ទេ ផ្ទុយទៅវិញ យើង​អាច​ដាក់​ឈ្មោះ​ថា​ជា​អ្វី​ក៏​បានដែរ​។ ហើយ​បើ​យើង​ពិនិត្យ​នៅ​ក្នុង​ថត​ដែល​ជា​គំរោង​នៃ​កម្មវិធី​គេហទំព័រ​នេះ យើង​នឹង​ឃើញ​មាន​ឯកសារ​មួយ​ចំនួន​ត្រូវ​បាន​បង្កើត​ឡើង​ដូច​ខាង​ក្រោម​នេះ៖


បន្ទាប់​ពី​មាន​គំរោង​នៃ​កម្មវធី​គេហទំព័រ​រួច​ហើយ យើង​ចាំបាច់​ត្រូវ​បង្កើត​កម្មវិធី​គេហទំព័រ​ជាក់ស្តែង​នៅ​ក្នុង​ថត​នៃ​គំរោង​នោះ ដោយ​ធ្វើ​ដូច​ខាង​ក្រោម​នេះ៖
python manage.py startapp polls


ជាលទ្ធផល ថត​ដែល​ជា​កម្មវិធី​គេហទំព័រ​របស់​យើង​មាន​ឈ្មោះ​ថា polls ត្រូវ​បាន​បង្កើត​ឡើង​ជា​ស្វ័យប្រវត្តិ ដែល​នៅ​ក្នុង​នោះ​ឯកសារ​ចាំបាច់មួយ​ចំនួន​ក៏​ត្រូវ​បាន​បង្កើត​ឡើង​រួច​ជា​ស្រេច​។ យ៉ាងណាម៉ិញ កម្មវិធី​គេហទំព័រ​នេះ គឺ​ជា​កម្មវិធី​ស្ទង់​មតិ​មួយ ដែល​យើង​នឹង​សរសេរ​កូដ​បំពេញ​ជា​បណ្តើ​ៗ រហូត​ដល់​កម្មវិធី​មាន​លក្ខណៈ​ពេញលេញ ជា​កម្មវិធី​គេហទំព័រ​មួយ ដែល​អាច​ដំណើរការបាន​នៅ​លើ Internet ។

មួយវិញទៀត អាស័យដ្ឋាន​ដែល​ជា​ផ្លូវ​ចូល​ទៅ​កាន់​ទំព័រ​ដើម​នៃ​កម្មវិធីគេហទំព័រ polls របស់​យ់ើង​គឺ http://localhost:8000/polls/ ដែល​ជា​សំណើរ​មួយ​ដែល​យើង​ចាំបាច់​ត្រូវ​ធ្វើ​ការឆ្លើយតប ដោយ​ការបង្កើត​ក្បួនខ្នាត​ទាងឡាយ ក្នុង​គោលបំណង​បង្ហាញ​នូវ​លទ្ធផលផ្សេង​ៗ ទៅ​តាម​ចិត្ត​ចង់​របស់​យើង​។ ជារួម​យើង​ចាំបាច់​ត្រូវ​ភ្ជាប់​ផ្លូវ​ខាង​លើ​នេះ​ទៅ​នឹង​ក្បួនខ្នាត​មួយ​ចំនួន នៅ​ក្នុង​កម្មវិធី polls របស់​យើង ដែល​នឹង​បង្ហាញ​នូវ​លទ្ធផល អាស្រ័យ​ទៅ​តាម​ចិត្ត​របស់​យើង​។ ហើយ​ការភ្ជាប់​ផ្លូវ​ខាង​លើ​ទៅ​នឹង​ក្បួន​ខ្នាត​ទាំងនោះ ត្រូវ​ធ្វើ​ឡើង​នៅ​ក្នុង​ឯកសារ mystite/urls.py ដូច​ខាង​ក្រោម​នេះ៖
#mysite/mysite/urls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]
នៅ​លើបន្ទាត់​លេខ 6 ការសរសេរថា path('polls/', include('polls.urls')), គឺ​ជា​ការភ្ជាប់​ផ្លូវ​ដែល​ជា​អាស័យដ្ឋាន​នៃ​ទំព័រ​ដើម​របស់​កម្មវិធី​គេហទំព័រ polls ទៅ​កាន់​សាស្ត្រា urls.py នៅ​ក្នុង​ថត នៃ​កម្មវិធី polls ។

បន្ទាប់មកទៀត នៅ​ក្នុង​ថត polls យើង​ចាំបាច់​ត្រូវ​បង្កើត​សាស្ត្រា urls.py ថ្មី​មួយ ដែល​នៅ​ក្នុង​នោះ យើង​ត្រូវ​ភ្ជាប់​ផ្លូវ​ដែល​ជា​ទំព័រ​ដើម​នេះ ទៅ​នឹង​ក្បួន​ផ្សេង​ៗ​នៅ​ក្នុង​សាស្ត្រា views.py ដោយ​ធ្វើ​ដូច​ខាង​ក្រោម​នេះ៖
#mysite/polls/urls.py
from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
នៅ​លើ​បន្ទាត់​លេខ 7 ការសរសេរថា path('', views.index, name='index') គឺ​ជា​ការតភ្ចាប់​អាស័យដ្ឋាន​ដែល​ជា​ផ្លូវ​ចូល​ទៅ​កាន់​ទំព័រ​ដើម​របស់​កម្មវិធី polls ទៅ​នឹង​ក្បួនវិធី​មួយ​​ដែល​ត្រូវ​បានបង្កើត​ឡើង​រួច​ជា​ស្រេច​មាន​ឈ្មោះ​ថា index នៅ​ក្នុង​សាស្ត្រា views.py ។ ជា​លទ្ធផល ក្បួន​ឈ្មោះ index នឹង​ត្រូវ​យកទៅ​ប្រើ​ជា​ស្វ័យ​ប្រវត្តិ នៅ​ពេល​ដែល​ទំព័រ​ដើម​របស់​កម្មវិធី polls ដែល​មាន​អាស័យដ្ឋាន​ជា http://127.0.0.1:8000/polls/ ត្រូវ​បាន​បើក​ឡើង​។

មួយវិញទៀត ដោយ​ក្បួនវិធី​ឈ្មោះ index នៅ​ក្នុង​សាស្ត្រា views.py ក៏​ជា​ក្បួនវិធី​មួយ​ដូច​ជា​ក្បួន​វិធី​ដទៃ​ទៀត​នៅ​ក្នុង​ភាសា Python ដែរ ដូចនេះ​យើង​អាច​យក​វា​មកកែច្នៃ​អោយ​បញ្ចេញ​លទ្ធផល​បែប​ណា​ក៏​បាន​ដែរ​។ ពិនិត្យ​កូដ​ខាង​ក្រោម​នេះ៖
#mysite/polls/views.py
from django.shortcuts import render

from django.http import HttpResponse

def index(request):
    return HttpResponse("ស្វាគមន៍​មក​កាន់​ទំព័រ​ដើម​របស់​កម្មវិធី​គេហទំព័រ​ ស្ទង់​មតិ ។")
ចុងក្រោយ​បង្អស់ ដើម្បី​ដំណើរការកម្មវិធី​គេហទំព័រ polls នេះ យើង​ចាំបាច់​ត្រូវ​ដំណើរការ server ដោយ​សរសេរ​បញ្ជា​មួយ​បន្ទាត់​ដូច​ខាង​ក្រោម​នេះ៖
python manage.py runserver

ជាលទ្ធផល បើ​យើង​បើក browser និង​ចូល​ទៅ​កាន់​ទំព័រ​ដើម​របស់​កម្មវិធី​គេហទំព័រ polls របស់​យើង ដែល​មាន​អាស័យដ្ឋាន http://127.0.0.1:8000/polls/ យើង​នឹងឃើញ​លទ្ធផល​ដូច​ខាង​ក្រោម​នេះ៖