Django

Come usare i serializzatori Django

Come usare i serializzatori Django
Serializer viene utilizzato in Django per convertire le istanze del modello o i set di query in tipi di dati supportati da Python che possono essere facilmente resi in JSON, XML o altri formati. La deserializzazione può essere eseguita anche 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 contenuto e può comprendere solo i dati grezzi, ovvero i dati JSON. Come è possibile utilizzare i serializzatori per convertire l'istanza del modello in formato JSON è mostrato in questo tutorial.

Prerequisiti:

Prima di esercitarti con lo script 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.

Configura un'app Django per serializzatori:

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

$ python3 gestire.py startapp serialapp

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

$ python3 gestire.py createsuperuser

Esegui il seguente comando per installare Django REST Framework.

$ pip3 installa djangorestframework

Aggiungi il rest_framework e il nome dell'app nel INSTALLATA_APP parte di impostazioni.pi file.

INSTALLATE_APPS = [
… .
'resto_quadro',
'app seriale'
]

Crea un modello per la tabella del database:

Apri il Modelli.pi file dal serialapp 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, email, contact_no, e creato campi. Qui, nome, email, e contact_no i campi memorizzeranno i dati dei caratteri, l'indirizzo il campo memorizzerà i dati di testo e creato il campo memorizzerà i dati DateTime.

Modelli.pi

# Importa il modulo dei modelli
da django.modelli di importazione db
# Definire la classe del modello per la tabella dei clienti
classe Cliente (modelli.Modello):
nome = 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 migrazioni comando per creare una nuova migrazione in base alle modifiche apportate dai modelli.

$ python3 gestire.py makemigrations serialapp

Corri il migrare comando per eseguire i comandi SQL e creare tutte le tabelle nel database definito nel Modelli.pi file.

$ python3 gestire.py migrare

Modifica il contenuto del of amministratore.pi file con il seguente contenuto. Qui, il cliente la classe dei modelli è registrata utilizzando il registro() metodo per visualizzare il clienti tabelle nella dashboard di amministrazione di Django.

amministratore.pi

# Importa modulo di amministrazione
da django.amministratore di importazione contributi
# Importa il modello del cliente
a partire dal .modelli importati Cliente
# Registra il modello del cliente
amministratore.luogo.registra (cliente)

URL.pi

da django.percorso di importazione degli URL
da django.amministratore di importazione contributi
patternurl = [
# Definisci il percorso per admin
percorso('admin/', admin.luogo.URL),
]

Aggiungi record nella tabella:

Apri la pagina di amministrazione di Django e aggiungi alcuni record nel clienti tabella visualizzata nel browser in formato JSON. Qui sono stati inseriti tre record.

Modifica le visualizzazioni.pi:

Apri il visualizzazioni.pi file dal serialapp e sostituisci il contenuto con il seguente script. Elenco clienti la classe è definita per serializzare tutti i record dei clienti e restituire i dati al browser in formato JSON. Dettagli cliente la classe è definita per serializzare il particolare record del cliente in base al valore ID e restituire i dati del browser in formato JSON. CustomerSerializer è un file di serializzatori che è stato creato nella parte successiva di questo tutorial.

visualizzazioni.pi

# Importa generici da Django REST Framework
da rest_framework importa generici
# Importa modello cliente
a partire dal .modelli importati Cliente
# Importa CustomerSerializer dai serializzatori
a partire dal .i serializzatori importano CustomerSerializer
# Definisci la classe per convertire tutti i record della tabella dei clienti in JSON
class CustomerList(generici.ListCreateAPIView):
queryset = Cliente.oggetti.tutti()
serializer_class = CustomerSerializer
# Definisci la classe per convertire il record particolare della tabella dei clienti in JSON
class CustomerDetail(generici.RetrieveUpdateDestroyAPIView):
queryset = Cliente.oggetti.tutti()
serializer_class = CustomerSerializer

Crea serializzatore:

Creare serializzatori.pi file nella stessa posizione del visualizzazioni.pi file con il seguente script. ModelloSerializer class è usata qui per creare CustomerSerializer classe che restituisce la classe serializzatori con i campi del modello Customer. I campi del modello cliente che verranno convertiti in formato JSON sono menzionati nel in meta classe.

serializzatori.pi

# Importa il modulo serializzatori da Django REST Framework
dai serializzatori di importazione rest_framework
# Importa modello cliente
a partire dal .modelli importati Cliente
# Definire la classe dei serializzatori personalizzati per convertire i campi del modello Customer in JSON
class CustomerSerializer (serializzatori.ModelSerializer):
classe Meta:
modello = Cliente
field = ('id', 'name', 'address', 'email', 'contact_no')

Modifica gli URL.py file:

Modifica il contenuto del of URL.pi 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//' percorso è definito per visualizzare i dati particolari del of clienti tabella in formato JSON in base al valore ID.

URL.pi

# Importa modulo di amministrazione
da django.amministratore di importazione contributi
# Importa il percorso e includi il modulo
da django.percorso di importazione degli URL
# Importa le visualizzazioni
dalle visualizzazioni di importazione di serialapp
# Importa format_suffix_patterns da Django REST Framework
da rest_framework.urlpatterns import format_suffix_patterns
patternurl = [
# Definisci il percorso per admin
percorso('admin/', admin.luogo.URL),
# Definisci il percorso per ottenere tutti i dati dei clienti in formato JSON
percorso('clienti/', viste.Elenco clienti.as_view()),
# Definire il percorso per ottenere i dati del cliente in base all'ID in formato JSONSON
percorso('clienti//', viste.Dettagli cliente.as_view()),
]
urlpatterns = format_suffix_patterns(urlpatterns)

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

http://localhost:8000/clienti

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

http://localhost:8000/clienti/2

Conclusione:

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

Tutorial OpenTTD
OpenTTD è uno dei giochi di simulazione aziendale più popolari in circolazione. In questo gioco, devi creare una meravigliosa attività di trasporto. T...
SuperTuxKart per Linux
SuperTuxKart è un fantastico titolo progettato per offrirti l'esperienza di Mario Kart gratuitamente sul tuo sistema Linux. È piuttosto impegnativo e ...
Tutorial Battaglia per Wesnoth
The Battle for Wesnoth è uno dei giochi di strategia open source più popolari a cui puoi giocare in questo momento. Non solo questo gioco è in svilupp...