picha

Python somo la 59: Kufanya Mahesabu (Aggregations) Katika Django

Katika somo hili tutajifunza jinsi ya kutumia Django ORM kufanya mahesabu mbalimbali kama Sum, Avg, Count, Max, Min, pamoja na kupunguza idadi ya items zinazoonekana kwenye dashboard (LIMIT). Pia tutajifunza namna ya kutengeneza “difference” kati ya thamani kubwa na ndogo bila kubadilisha functions zozote ulizokwisha ziandika.

Utangulizi

Katika kazi za mifumo, mara nyingi tunahitaji kuonyesha takwimu kama jumla ya bei, wastani, au idadi ya vitu. Django inatoa njia rahisi kupitia ORM bila kuandika SQL moja kwa moja. Somo hili litakuonyesha hatua kwa hatua jinsi ya kupata mahesabu hayo kutoka kwenye jedwali la MenuItem.

 

1. Kutumia Django Aggregation Functions

Django inatoa method maalumu kwa ajili ya mahesabu:

Tunaziingiza kwa:

from django.db.models import Avg, Sum, Count, Max, Min

2. Kupata Mahesabu Kutoka Kwenye Model

Mfano tukitumia model yako:

MenuItem.objects.aggregate(Sum('bei'))

Lakini matokeo huja kama dictionary:

{'bei__sum': 45000}

Kwa hiyo tunachukua thamani moja kwa moja:

jumla = MenuItem.objects.aggregate(Sum('bei'))['bei__sum']

Vivyo hivyo kwa mahesabu mengine:

wastani = MenuItem.objects.aggregate(Avg('bei'))['bei__avg']
idadi = MenuItem.objects.aggregate(Count('id'))['id__count']
bei_kubwa = MenuItem.objects.aggregate(Max('bei'))['bei__max']
bei_ndogo = MenuItem.objects.aggregate(Min('bei'))['bei__min']

3. Kutengeneza Difference (Tofauti ya Bei Kubwa – Bei Ndogo)

Kwa kuwa baadhi ya data inaweza kuwa tupu (None), tunalinda kwa kutumia or 0:

tofauti = (bei_kubwa or 0) - (bei_ndogo or 0)

4. Kuweka Limit ya Items (LIMIT kama SQL)

Kama tunataka kuonyesha item 10 tu, tunatumia slicing:

items = MenuItem.objects.all()[:10]

Hii haiathiri data wala pagination, ni limit ya kuonyesha tu.


5. Dashboard View Kamili Bila Kugusa Methods Zako Zingine

Hii ndiyo view ambayo unaweza kuitumia bila kubomoa code zako zilizopo:

def dashboard(request):

    items = MenuItem.objects.all()[:10]  # LIMIT 10 items

    jumla = MenuItem.objects.aggregate(Sum('bei'))['bei__sum']
    wastani = MenuItem.objects.aggregate(Avg('bei'))['bei__avg']
    idadi = MenuItem.objects.aggregate(Count('id'))['id__count']
    bei_kubwa = MenuItem.objects.aggregate(Max('bei'))['bei__max']
    bei_ndogo = MenuItem.objects.aggregate(Min('bei'))...
Ingia sasa ili uweze kusoma makala hii yote.

Jiunge nasi WhatsApp kupata update zetu
Zoezi la Maswali

Nyuma Endelea


Umeionaje Makala hii.. ?

       
Author: Rajabu image Tarehe: 2025-11-26 11:48:57 Topic: Python Main: Masomo File: Download PDF Views 484

Share On:

Share follows: 0 | Unique share links followed: 0
Sponsored links
👉1 Madrasa kiganjani     👉2 Kitabu cha Afya     👉3 Simulizi za Hadithi Audio     👉4 Dua za Mitume na Manabii     👉5 Kitau cha Fiqh     👉6 kitabu cha Simulizi    

Post zinazofanana:

Python somo la 33: Jinsi ya kupata taarifa za faili

Katika somo hili utakwend akujifunz anamna ya kuwez akupata taarifa zinazohusu faili

Soma Zaidi...
Python somo la 23: Library kwenye python

Hapa utajifunza maana ya library, kazi zake aina zake na jinsi ya ku install lirary

Soma Zaidi...
Python seomo la 55: Kutengeneza Simple Admin Dashboard ya CRUD

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.

Soma Zaidi...
PYTHON somo la 11: Matumizi ya comperison eperator katika python

Katika somo hili utakwenda kujifunza kuhusu operator. Hasa hapa tutakwend akujifunz akuhusu comparison operaor.

Soma Zaidi...
Python somo la 39: Jinsi ya Kuongeza Kurasa Nyingine Katika Django View

Katika somo hili utakwenda kujifunza zaidi kuhusu Jinsi ya Kuongeza Kurasa Nyingine Katika Django View

Soma Zaidi...
Python somo la 62 Kupakia picha (upload) na kuisoma kutoka kwenye database

Katika somo hili utakwenda kujifunza jinsi ya kushughulika na faili, kama ku upload faili kwenye django.

Soma Zaidi...