Katika somo hili tutajifunza jinsi ya kuunda dashboard rahisi ndani ya Django ambayo itaruhusu mtumiaji kuongeza, kusoma, kuhariri na kufuta taarifa za MenuItem bila kutumia Django built-in admin, bali kwa kutumia HTML templates na views tulizotengeneza sisi wenyewe.
Dashboard hutoa njia rahisi ya kusimamia data. Badala ya kutumia Django admin, leo tutajenga dashboard yetu wenyewe inayomruhusu admin kuongeza, kuhariri na kufuta taarifa za chakula.
Dashboard tunayotengeneza itakuwa sehemu ambayo mtumiaji (mfanyakazi au admin wa hoteli) ataweza:
Kuona orodha ya vyakula (Read)
Kuongeza chakula kipya (Create)
Kuhariri kilichopo (Update)
Kufuta kilichopo (Delete)
Hii ndiyo CRUD (Create, Read, Update, Delete).
Katika views.py tengeneza view ya kuonyesha dashboard:
from django.shortcuts import render, get_object_or_404, redirect
from .models import MenuItem
def dashboard(request):
items = MenuItem.objects.all()
return render(request, 'dashboard.html', {'items': items})
Faili: dashboard.html
<!DOCTYPE html>
<html>
<head>
<title>Dashboard ya Menu</title>
</head>
<body>
<h2>Dashboard – Orodha ya Vyakula</h2>
<a href="{% url 'add_item' %}">Ongeza Kitu Kipya</a>
<table border="1" cellpadding="6">
<tr>
<th>Jina</th>
<th>Muda Upatikanaji</th>
<th>Bei (TZS)</th>
<th>Hatua</th>
</tr>
{% for item in items %}
<tr>
<td>{{ item.jina }}</td>
<td>{{ item.muda_upatikanaji }}</td>
<td>{{ item.bei }}</td>
<td>
<a href="{% url 'edit_item' item.id %}">Edit</a> |
<a href="{% url 'delete_item' item.id %}">Delete</a>
</td>
</tr>
{% endfor %}
</table>
</body>
</html>
def add_item(request):
if request.method == 'POST':
jina = request.POST.get('jina')
maelezo = request.POST.get('maelezo')
muda = request.POST.get('muda_upatikanaji')
bei = request.POST.get('bei')
MenuItem.objects.create(
jina=jina,
maelezo=maelezo,
muda_upatikanaji=muda,
bei=bei
)
return redirect('dashboard')
return render(request, 'add_item.html')
add_item.html<h2>Ongeza Kitu Kipya</h2>
<form method="POST">
{% csrf_token %}
<label>Jina:</label>
<input type="text" name="jina"><br>
<label>Maelezo:</label>
<textarea name="maelezo"></textarea><br>
<label>Muda Upatikanaji:</label>
<input type="text" name="muda_upatikanaji"><br>
<label>Bei (TZS):</label>
<input type="number" step="0.01" name="bei"><br>
<button type="submit">Hifadhi</button>
</form>
def edit_item(request, id):
item = get_object_or_404(MenuItem, id=id)
if request.method == 'POST':
item.jina = request.POST.get('jina')
item.maelezo = request.POST.get('maelezo')
item.muda_upatikanaji = request.POST.get('muda_upatikanaji')
item.bei = request.POST.get('bei')
item.save()
return redirect('dashboard')
return render(request, 'edit_item.html', {'item': item})
edit_item.html<h2>Hariri Kitu: {{ item.jina }}</h2>
<form method="POST">
{% csrf_token %}
<label>Jina:</label>
<input type="text" name="jina" value="{{ item.jina }}"><br>
<label>Maelezo:</label>
<textarea name="maelezo">{{ item.maelezo }}</textarea><br>
<label>Muda Upatikanaji:</label>
<input type="text" name="muda_upatikanaji" value="{{ item.muda_upatikanaji }}"><br>
<label>Bei:</label>
<input type="number" step="0.01" name="bei" value="{{ item.bei }}"><br>
<button type="submit">Hifadhi</button>
</form>
def delete_item(request, id):
item = get_object_or_404(MenuItem, id=id)
item.delete()
return redirect('dashboard')
Kwenye urls.py:
path('dashboard/', views.dashboard, name='dashboard'),
path('add/', views.add_item, name='add_item'),
path('edit/<int:id>/', views.edit_item, name='edit_item'),
path('delete/<int:id>/', views.delete_item, name='delete_item'),
Jiunge nasi WhatsApp kupata update zetu
Umeionaje Makala hii.. ?
Katika somo hili tunakwenda kujifunza aina nyingine za data ambazo hutumika kwenye python.
Soma Zaidi...Katika somo hili utakwend akujifunza matumizi ya for loop kwneye python
Soma Zaidi...Hapa utajifunza maana ya library, kazi zake aina zake na jinsi ya ku install lirary
Soma Zaidi...Katika somo hili tutajifunza njia mbili muhimu za kuongeza data kwenye database katika project yetu ya pybongo (app: menu). Njia hizi ni: Kutumia Django Admin Kutumia Django Shell Utafahamu pia jinsi ya kusajili models kwenye admin, jinsi ya kuingia admin panel, na namna ya kutengeneza entries mpya za MenuItem.
Soma Zaidi...Katika somo hili utakwenda kujifunza jinsi ya kushughulika na faili, kama ku upload faili kwenye django.
Soma Zaidi...Katika somo hili utakwend akujifunz akuhusu nadharia ya data abstraction na kazi zake kwenye OOP
Soma Zaidi...Katika soo hili utakwenda kujifunza jinsi ya kubaduli aina moja ya data kwena aina nyingine. Kwa mfano unaweza kubadili namba kuwa string ama kubadili string kuwa nanda ama kubadili float kuwa int.
Soma Zaidi...Katika somo hili utajifunza maana ya class, sheria za uandishi wake na mifano halisi
Soma Zaidi...Katika somo hili utakwend akujifunza kuchakata data kwa Kutumia Loops na Conditions katika Django Templates
Soma Zaidi...Katika somo hili tutajifunza namna ya kusoma data kutoka kwenye database kupitia Django ORM, jinsi ya kuzipeleka kwenye view, na jinsi ya kuzionyesha kwenye HTML template.
Soma Zaidi...