1. Hyrje

Django është një kornizë e njohur në internet Python që vjen me një sistem Hartëzimi Relacional të Objekteve (ORM). Sistemi ORM ofron një API të nivelit të lartë për ndërveprim me një bazë të dhënash relacionale, gjë që e bën të lehtë për zhvilluesit të punojnë me të dhënat në aplikacionet e tyre. Një veçori kryesore e Django ORM është aftësia për të serializuar të dhënat në dhe nga formate të ndryshme.

2. Çfarë janë serializuesit?

Serializuesit janë komponentë në Django ORM që ju mundësojnë konvertimin e llojeve komplekse të të dhënave, të tilla si grupet e pyetjeve dhe shembujt e modeleve, në JSON, XML ose lloje të tjera të përmbajtjes. Serializuesit gjithashtu mund të deserializojnë të dhënat e serializuara për të krijuar shembuj të rinj të objekteve model.

3. Pse të përdorni serializuesit në Django ORM?

Serializuesit janë të dobishëm në një numër skenarësh, duke përfshirë:

  1. Zhvillimi i API: Nëse po ndërtoni një API me Django, serializuesit ju lejojnë të konvertoni me lehtësi shembujt e modelit tuaj në një format JSON ose XML që mund të konsumohet lehtësisht nga sistemet e tjera.
  2. Transferimi i të dhënave:Kur duhet të transferoni të dhëna midis sistemeve ose komponentëve të ndryshëm të një sistemi, serializuesit mund t'ju ndihmojnë t'i konvertoni të dhënat në një format të përputhshëm.
  3. Caching:Në disa raste, mund të jetë më efikase të ruhen në memorien specifike të dhënat e serializuara sesa shembujt e modelit të papërpunuar. Kjo është për shkak se të dhënat e serializuara mund të merren shpejt nga cache dhe t'i kthehen klientit.

4. Llojet e serializuesve në Django ORM

Django ORM ofron dy lloje serializuesish: ModelSerializer dhe Serializer.

4.1. ModelSerializer

ModelSerializer është një shkurtore për krijimin e serializuesve që merren me instancat e modelit dhe grupet e pyetjeve. Ai gjeneron automatikisht fushat për të gjitha fushat në model dhe ofron zbatime të paracaktuara për metodat create() dhe update().

Shembull:

from rest_framework import serializers
from .models import User

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ['id', 'name', 'email']

Në shembullin e mësipërm, ne kemi përcaktuar një ModelSerializer për modelin e Përdoruesit. Serializuesi gjeneron automatikisht fushat për të gjitha fushat në model, dhe ne kemi specifikuar fushat që duam të përfshijmë në daljen e serializuar.

4.2. Serializues

Klasa Serializer është një serializues më fleksibël që ju lejon të përcaktoni fushat në mënyrë eksplicite. Është e dobishme kur ju duhet të serializoni të dhëna që nuk lidhen drejtpërdrejt me një model, ose kur duhet të përfshini informacion shtesë në daljen e serializuar.

from rest_framework import serializers

class BookSerializer(serializers.Serializer):
    title = serializers.CharField()
    author = serializers.CharField()
    published_date = serializers.DateField()

Në shembullin e mësipërm, ne kemi përcaktuar një Serializer për një objekt Libri. Ne kemi përcaktuar në mënyrë eksplicite fushat që duam të përfshijmë në daljen e serializuar, në vend që të mbështetemi në gjenerimin automatik të fushës të ofruar nga ModelSerializer.

5. Formatet e serializimit

Serializuesit Django ORM mbështesin një sërë formatesh serializimi, duke përfshirë:

  1. JSON:Formati më i zakonshëm i serializimit, i mbështetur nga shumica e kornizave të internetit dhe API-ve.
  2. XML: Një tjetër format i njohur serializimi, i përdorur zakonisht në aplikacionet e ndërmarrjeve.
  3. YAML:Një format serializimi i lexueshëm nga njeriu që është i popullarizuar në skedarët e konfigurimit.

Shembull i përdorimit

Le të hedhim një vështrim në një shembull se si të përdorim serializuesit në Django ORM.

from django.http import JsonResponse
from rest_framework import serializers
from .models import Book

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = ['title', 'author', 'published_date']

def book_list(request):
    books = Book.objects.all()
    serializer = BookSerializer(books, many=True)
    return JsonResponse(serializer.data, safe=False)

Në shembullin e mësipërm, ne kemi përcaktuar një funksion shikimi që kthen një listë librash në formatin JSON. Ne përdorim BookSerializer për të serializuar listën e librave, duke kaluar në grupin e pyetjeve dhe duke vendosur many=True për të treguar se duam të serializojmë shumë objekte. Së fundi, ne kthejmë të dhënat e serializuara duke përdorur funksionin JsonResponse.

6. Përfundim

Serializuesit janë një mjet i fuqishëm në Django ORM që e bën të lehtë konvertimin e llojeve komplekse të të dhënave në dhe nga formate të ndryshme. Në këtë postim në blog, ne kemi mbuluar gjithçka që ju duhet të dini për serializuesit në Django ORM, duke përfshirë dy llojet e serializuesve, formatet e serializimit dhe përdorimin e shembullit. Duke përdorur serializues në aplikacionet tuaja Django, ju mund të ndërtoni API të fuqishme dhe të transferoni me efikasitet të dhëna midis sistemeve të ndryshme.