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 544

Share On:

Share follows: 0 | Unique share links followed: 0
Sponsored links
👉1 Dua za Mitume na Manabii     👉2 Tafasiri ya Riyadh Swalihina     👉3 Kitabu cha Afya     👉4 Bongolite - Game zone - Play free game     👉5 Simulizi za Hadithi Audio     👉6 ai web app    

Post zinazofanana:

Python somo la 17: Jinsi ya kutumia user input

Katika somo hili uatkwenda kujifunz anamna ambavyo mtu anaweza kuingiza input kwneye system

Soma Zaidi...
PYTHON - somo la 1: Jinsi ya ku install python

Katika somo hili utajifunza kuhusu maana ya python na kazi zake. pia jinsi ya kuandaa kifaa chako kwa ajili ya somo.

Soma Zaidi...
PYTHON - somo la 10: string method na zinavyofanya kazi

Katika somo hili utakwenda kujfnza kuhusu string method nyinginezo. Katika somo lililopita tulijifunza kuhusu string indexing.

Soma Zaidi...
PYTHON - somo la 9: indexing katika strinfg

Katika somo hili tutakwenda kujifunza kuhusu string indexing. Kama tulivyojifunza kuhusu namba katika somo lililopita, basi hapa tutakwenda kucheza na string.

Soma Zaidi...
Python somo la 27: polymorphism kwneye python

Katika somo hili utajifunza maana ya polymorphism na sheria za uandishi wake

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...