2 වන ඒකකය: Django Project ව්‍යුහය

පළමු ඒකකයේදී අපි project එකක් සෑදුවා. දැන් අපි ඒ project folder එක ඇතුළේ Django විසින් අපිට ලබාදුන් ගොනු (files) මොනවාද, ඒවායේ කාර්යභාරය කුමක්ද කියා තේරුම් ගනිමු.


Project එකක් සහ App එකක් අතර වෙනස

මේ සංකල්පය තේරුම් ගැනීමට හොඳම ක්‍රමය නිවසක උදාහරණයයි.

  • Project (ව්‍යාපෘතිය): මේක හරියට ඔයාගේ සම්පූර්ණ "නිවස" වගේ. නිවසට පොදු සැකසුම් (settings), ලිපින (URLs) වැනි දේවල් මෙයට අයිතියි.
  • App (යෙදුම): මේවා හරියට නිවසේ තියෙන "කාමර" වගේ. උදාහරණයක් විදිහට, බ්ලොග් (Blog) එකක් සඳහා එක app එකකුත්, පරිශීලකයින් (Users) කළමනාකරණයට තව app එකකුත් හදන්න පුළුවන්. එක project එකක් ඇතුළේ apps කීපයක් තියෙන්න පුළුවන්.

ප්‍රධාන ගොනු (Files) හඳුනාගනිමු

ඔබේ `mysite` folder එක ඇතුළට ගිය විට, තවත් `mysite` නමින් folder එකකුත්, `manage.py` නමින් file එකකුත් දකින්න පුළුවන්. ඒ ඇතුළේ ඇති ප්‍රධාන ගොනු මෙසේය:

  • `manage.py`: මේක තමයි අපේ project එකේ "දුරස්ථ පාලකය" (Remote Control). Server එක run කරන්න, database එක හදන්න වගේ හැම command එකක්ම දෙන්නේ මේ file එක හරහායි. (උදා: `python manage.py runserver`).
  • `settings.py`: මේක project එකේ "පාලක පැනලය" (Control Panel) වගේ. Database එක මොකක්ද, අපේ apps මොනවද, වෙබ් අඩවියේ භාෂාව මොකක්ද වගේ සියලුම සැකසුම් (settings) තියෙන්නේ මෙතනයි.
  • `urls.py`: මේක project එකේ "ලිපින පොත" (Address Book). කවුරුහරි `/about` කියන address එකට ආවොත්, එයාව කොහාටද යවන්න ඕන කියලා තීරණය කරන්නේ මෙතනයි.

පියවර 1: අපේ සටහන් සඳහා නව App එකක් සෑදීම

දැන් අපි අපේ Notes Application එක හදන්න `notes` කියලා අලුත් app එකක් හදමු. Terminal එකේ, `manage.py` file එක තියෙන තැනට ගිහින්, මේ command එක run කරන්න.

# 'notes' නමින් නව app එකක් සාදන්න
python manage.py startapp notes

දැන් බැලුවොත්, `notes` නමින් අලුත් folder එකක් හැදිලා තියෙනවා දකින්න පුළුවන්. ඒක ඇතුළේත් ඒ app එකට අදාළ files ටිකක් තියෙනවා.

පියවර 2: App එක Project එකට හඳුන්වා දීම

අපි අලුත් app එකක් හැදුවට, Django project එක ඒ ගැන දන්නේ නෑ. ඒ නිසා අපි ඒක project එකට හඳුන්වා දෙන්න ඕන.

  1. ඔබේ code editor එකෙන් `mysite/settings.py` file එක open කරන්න.
  2. එහි `INSTALLED_APPS` කියලා ලැයිස්තුවක් තියෙනවා.
  3. ඒ ලැයිස්තුවේ අගට `'notes'` කියන නම එකතු කරන්න.
# mysite/settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'notes',  # අපේ අලුත් app එක මෙතනට එකතු කරන්න
]

දැන් අපේ Django project එක දන්නවා `notes` කියලා අලුත් app එකක් තියෙනවා කියලා. අපි ඊළඟ ඒකක වලදී මේ app එක ඇතුළේ තමයි අපේ වැඩ ටික කරන්නේ.