10 වන ඒකකය: අවසන් ස්පර්ශය සහ Deployment
සුභ පැතුම්! ඔබ දැන් Django යෙදුමක මූලික සහ අත්යවශ්යම කොටස් සියල්ලම පාහේ ආවරණය කර අවසන්. මේ අවසාන ඒකකයේදී, අපි අපේ යෙදුම තවත් ඔපමට්ටම් කර, එය ලෝකයටම පෙන්වන්න අන්තර්ජාලයට නිකුත් කරන්නේ (Deploy) කෙසේද යන්න පිළිබඳව කෙටි හැඳින්වීමක් ලබා ගනිමු.
පියවර 1: Navigation Bar එක සහ Logout පහසුකම
අපේ යෙදුමේ දැනට logout වෙන්න ක්රමයක් නෑ. ඒ වගේම, පරිශීලකයා login වෙලාද නැද්ද කියන එක මත පදනම්ව navigation bar එකේ links වෙනස් වෙන්න ඕන. අපි `base.html` ගොනුව වෙනස් කර මේ පහසුකම් දෙකම එකතු කරමු.
`notes/templates/base.html` ගොනුවේ `
<!-- notes/templates/base.html -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container">
<a class="navbar-brand" href="{% url 'notes-list' %}">NotesApp</a>
<div class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
{% if user.is_authenticated %}
<li class="nav-item">
<span class="nav-link">Welcome, {{ user.username }}!</span>
</li>
<li class="nav-item">
<a class="btn btn-outline-light" href="{% url 'logout' %}">Logout</a>
</li>
{% else %}
<li class="nav-item">
<a class="nav-link" href="{% url 'login' %}">Login</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Register</a> <!-- Register URL එක පසුව හදමු -->
</li>
{% endif %}
</ul>
</div>
</div>
</nav>
දැන් අපි මේ `login` සහ `logout` URL සඳහා Django හි සූදානම් views භාවිතා කරමු. `mysite/urls.py` ගොනුවට ගොස් පහත වෙනස්කම් කරන්න.
# mysite/urls.py
from django.contrib import admin
from django.urls import path, include
from django.contrib.auth import views as auth_views # auth views import කරගන්න
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('notes.urls')),
# Login සහ Logout සඳහා Django හි සූදානම් views
path('login/', auth_views.LoginView.as_view(template_name='login.html'), name='login'),
path('logout/', auth_views.LogoutView.as_view(template_name='logout.html'), name='logout'),
]
මේ සඳහා අවශ්ය `login.html` සහ `logout.html` templates ඔබට නිර්මාණය කරගත හැක.
පියවර 2: Deployment - ඔබේ යෙදුම ලෝකයට!
Deployment කියන්නේ, අපේ පරිගණකයේ (`localhost`) ක්රියාත්මක වන Django project එක, අන්තර්ජාලයේ ඇති server එකක ස්ථාපනය කර, ඕනෑම කෙනෙකුට පිවිසිය හැකි public web address එකක් (domain name) ලබා දෙන ක්රියාවලියයි.
මෙය තරමක් සංකීර්ණ ක්රියාවලියක් වුවත්, ආරම්භකයින් සඳහා එය ඉතා පහසු කරවන සේවාවන් කිහිපයක් තිබේ. උදාහරණ:
- PythonAnywhere: ආරම්භකයින් සඳහා ඉතාමත් ජනප්රිය සහ පහසුම සේවාවකි. නොමිලේම කුඩා Django යෙදුමක් deploy කිරීමට ඉඩ සලසයි.
- Railway: නවීන සහ භාවිතයට පහසු platform එකකි.
- Heroku: කලක් ඉතා ජනප්රියව තිබූ සේවාවකි.
- DigitalOcean, Vultr (VPS): වැඩි පාලනයක් අවශ්ය පළපුරුදු පරිශීලකයින් සඳහා.
Deployment වලදී `DEBUG = False` ලෙස සැකසීම, `ALLOWED_HOSTS` සැකසීම සහ `collectstatic` විධානය ක්රියාත්මක කිරීම වැනි මූලික පියවර කිහිපයක් අනුගමනය කළ යුතුය.
ඔබේ Django ගමන ආරම්භ විය!
ඔබ මෙම පාඨමාලාව සාර්ථකව නිමකර ඇත. ඔබ දැන් Django හි මූලික සංකල්ප වන Models, Views, Templates, Forms, සහ User Authentication පිළිබඳව හොඳ අවබෝධයක් ලබා ඇත. මෙය ඔබගේ web development ගමනේ විශිෂ්ට ආරම්භයකි. දැන් ඔබට CRUD හි Update සහ Delete කොටස් ඔබ විසින්ම නිර්මාණය කිරීමට උත්සහ කළ හැක. ඉදිරියටම යන්න!