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.

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 679

Share On:

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

Post zinazofanana:

PYTHON - somo la 3: Jinsi ya kuandika variable kwenye python

Katika somo hili utajifunza maana ya variable, na sheria za kutengeneza variable kwenye python. Pia utajifunza maneno ambayo hayafai kutumiwa kama variable

Soma Zaidi...
Python somo la 46: Kutengeneza Fomu na Kuituma kwa Django Template

Katika somo hili utakwenda kujifunza kutengeneza htmk form pamoja na kuituma.

Soma Zaidi...
Python somo la 45: Kutumia Loops na Conditions katika Django Templates

Katika somo hili utakwend akujifunza kuchakata data kwa Kutumia Loops na Conditions katika Django Templates

Soma Zaidi...
Python somo la 47: Jinsi ya kupokea na kuchakata fomu

Katika somo hili utakwend akujifunza jinsi ya kupokea na kuchakata fomu

Soma Zaidi...
Python somo la 19: Aina za Function

Katika somo hili utakwend akujifunza aina mbalimbali za function ambazo tunaweza kuzitumia kwenye python.

Soma Zaidi...
Python somo la 53: Kutengeneza HTML Form na Django View kwa ajili ya kuingiza data

Katika somo hili tutaangalia jinsi ya kutengeneza fomu ya HTML kwa ajili ya kuingiza data kwenye jedwali la MenuItem, pamoja na kutengeneza view itakayopokea data hiyo na kuihifadhi kwenye database. Pia tutaunganisha form na URL route.

Soma Zaidi...