Come usare i serializzatori Django

Come usare i serializzatori Django
Il serializzatore viene utilizzato in Django per convertire le istanze del modello o le queryset in tipi di dati supportati da Python che possono essere facilmente resi in JSON, XML o altri formati. La deserializzazione può anche essere eseguita dai serializzatori per recuperare i dati originali dai dati serializzati. Questa funzione è disponibile in Django Rest Framework. Quindi, gli utenti devono installare questo framework per utilizzare i serializzatori. Qualsiasi pagina Web del sito Web può contenere HTML, CSS e dati dalle tabelle del database. Ma l'API non comprende questi tipi di contenuti e può comprendere solo i dati grezzi, cioè i dati JSON. In che modo i serializzatori possono essere utilizzati per convertire l'istanza del modello in formato JSON mostrato in questo tutorial.

Prerequisiti:

Prima di praticare la sceneggiatura di questo tutorial, devi completare le seguenti attività.

  1. Installa la versione Django 3+ su Ubuntu 20+ (preferibilmente)
  2. Crea un progetto Django
  3. Esegui il server Django per verificare che il server funzioni correttamente o meno.

Imposta un'app Django per i serializzatori:

Esegui il seguente comando per creare un'app Django denominata seriapp.

$ Python3 Gestisci.Py Startapp Seriapp

Esegui il comando seguente per creare l'utente per accedere al database Django. Se hai creato l'utente prima, non è necessario eseguire il comando.

$ Python3 Gestisci.py createsuperuser

Esegui il seguente comando per installare Django Rest Framework.

$ PIP3 Installa DjangorestFramework

Aggiungi il Rest_Framework e il nome dell'app in Installato_app parte di impostazioni.Py file.

Installato_apps = [
.. .
'rest_framework',
'seriapp'
"

Crea un modello per la tabella del database:

Apri il Modelli.Py file da seriapp cartella e aggiungere il seguente script per definire la struttura di clienti tavoli. Cliente La classe è definita per creare una tabella denominata clienti con Nome, indirizzo, e -mail, contact_no, E creato campi. Qui, Nome, e -mail, E contact_no Fields memorizzerà i dati dei caratteri, l'indirizzo Il campo memorizzerà i dati di testo e creato Il campo memorizzerà i dati DateTime.

Modelli.Py

# Importa il modulo dei modelli
da Django.Modelli di importazione DB
# Definisci la classe modello per la tabella dei clienti
Cliente di classe (modelli.Modello):
name = modelli.Charfield (max_length = 100)
indirizzo = modelli.Campo di testo()
Email = modelli.Charfield (max_length = 50)
contact_no = modelli.Charfield (max_length = 20)
creato = modelli.DateTimeField (auto_now_add = true)

Corri il makemigrations comando per creare una nuova migrazione in base alle modifiche apportate dai modelli.

$ Python3 Gestisci.Py Makemigrations SeriaApp

Corri il migrare comanda di eseguire i comandi SQL e creare tutte le tabelle nel database definito nel Modelli.Py file.

$ Python3 Gestisci.py migrare

Modificare il contenuto del amministratore.Py File con il seguente contenuto. Qui, il cliente La classe dei modelli è registrata utilizzando il registro() metodo per visualizzare il file clienti Tabelle nella dashboard di amministrazione Django.

amministratore.Py

# Importa modulo amministratore
da Django.AMPIONE AMMINIO DI IMPIT
# Importa il modello del cliente
da .Modelli Import Cliente
# Registra il modello del cliente
amministratore.luogo.Registrati (cliente)

URL.Py

da Django.percorso di importazione degli URL
da Django.AMPIONE AMMINIO DI IMPIT
urlpatterns = [
# Definisci il percorso per l'amministratore
Path ('Admin/', Admin.luogo.URL),
"

Aggiungi record nella tabella:

Apri la pagina dell'amministrazione Django e aggiungi alcuni record al clienti Tabella visualizzata nel browser in formato JSON. Qui sono stati inseriti tre record.

Modifica le viste.PY:

Apri il visualizzazioni.Py file da seriapp e sostituire il contenuto con il seguente script. ELLISTA CHIETTENI La classe è definita per serializzare tutti i record dei clienti e restituire i dati al browser in formato JSON. CustomerDetail La classe è definita per serializzare il record del cliente particolare in base al valore ID e restituire i dati del browser in formato JSON. CustomerSerializer è un file dei serializzatori che è stato creato nella prossima parte di questo tutorial.

visualizzazioni.Py

# Importa generica dal framework di riposo di Django
da rest_framework import generics
# Importa modello di cliente
da .Modelli Import Cliente
# Importa i clienti del serializzatore
da .I serializzatori importano clienti
# Definisci la classe per convertire tutti i record della tabella dei clienti in JSON
Lista di classe (generica.ListCreateApiview):
QuerySet = Cliente.oggetti.Tutto()
serializer_class = customerializer
# Definisci la classe per convertire il record particolare della tabella dei clienti in JSON
Classe CustomerDetail (generici.Recuperareupdatedestroyapiview):
QuerySet = Cliente.oggetti.Tutto()
serializer_class = customerializer

Crea serializzatore:

Creare serializzatori.Py file nella stessa posizione del visualizzazioni.Py File con il seguente script. ModelSerializer La classe è usata qui per creare CustomerSerializer Classe che restituisce la classe dei serializzatori con i campi del modello del cliente. I campi del modello del cliente che verranno convertiti in formato JSON sono menzionati nel Meta classe.

serializzatori.Py

# Importa il modulo dei serializzatori dal framework di riposo di Django
Da Rest_Framework Import Seriazer
# Importa modello di cliente
da .Modelli Import Cliente
# Definisci la classe Serializzatori personalizzati per convertire i campi del modello del cliente in JSON
CLASSERIALIZZAZZAZIONE CLASSE (serializzatori.ModelSerializer):
Meta di classe:
modello = cliente
Fields = ('id', 'name', 'indirizzo', 'email', 'contact_no')

Modifica gli URL.Py File:

Modificare il contenuto del URL.Py File con il seguente script. Nella sceneggiatura, il 'clienti/'Il percorso è definito per visualizzare tutti i record del clienti Tabella in formato JSON e il 'clienti//'Il percorso è definito per visualizzare i dati particolari di clienti Tabella in formato JSON in base al valore ID.

URL.Py

# Importa modulo amministratore
da Django.AMPIONE AMMINIO DI IMPIT
# Percorso di importazione e includi il modulo
da Django.percorso di importazione degli URL
# Importa le visualizzazioni
Dalle visualizzazioni delle importazioni Serialapp
# Importa format_suffix_patterns da Django Rest Framework
da rest_framework.urlpatterns import format_suffix_patterns
urlpatterns = [
# Definisci il percorso per l'amministratore
Path ('Admin/', Admin.luogo.URL),
# Definisci il percorso per ottenere tutti i dati dei clienti in formato JSON
percorso ('clienti/', visualizzazioni.ELLISTA CHIETTENI.as_view ()),
# Definisci il percorso per ottenere i dati particolari del cliente in base all'ID in formato JSON
percorso ('clienti //', visualizzazioni.CustomerDetail.as_view ()),
"
urlpatterns = format_suffix_patterns (urlpatterns)

Tutti i record della tabella dei clienti verranno visualizzati in formato JSON se il seguente URL verrà eseguito.

http: // localhost: 8000/clienti

Il record del secondo cliente verrà mostrato in formato JSON se il seguente URL esegue.

http: // localhost: 8000/clienti/2

Conclusione:

L'uso dei serializzatori nell'applicazione Django per convertire l'istanza del modello in formato JSON ha mostrato in questo tutorial utilizzando un semplice script. Gli utenti di Django capiranno lo scopo di utilizzare i serializzatori e li applicheranno nella loro applicazione, se necessario dopo aver letto questo tutorial.