Django

Django Serileştiriciler nasıl kullanılır

Django Serileştiriciler nasıl kullanılır
Serileştirici, Django'da model örneklerini veya sorgu kümelerini, JSON, XML veya diğer biçimlere kolayca dönüştürülebilen python destekli veri türlerine dönüştürmek için kullanılır. Serileştirme, seri hale getirilmiş verilerden orijinal verileri geri almak için serileştiriciler tarafından da yapılabilir. Bu özellik Django REST Framework'te mevcuttur. Bu nedenle, kullanıcıların serileştiricileri kullanmak için bu çerçeveyi kurmaları gerekir. Web sitesinin herhangi bir web sayfası HTML, CSS ve veritabanı tablolarından veriler içerebilir. Ancak API bu tür içerikleri anlamaz ve yalnızca ham verileri, yani JSON verilerini anlayabilir. Model örneğini JSON formatına dönüştürmek için seri hale getiricilerin nasıl kullanılabileceği bu öğreticide gösterilmiştir.

Önkoşullar:

Bu öğreticinin komut dosyasını uygulamadan önce aşağıdaki görevleri tamamlamanız gerekir.

  1. Django 3+ sürümünü Ubuntu 20+ üzerine kurun (tercihen)
  2. Bir Django projesi oluşturun
  3. Sunucunun düzgün çalışıp çalışmadığını kontrol etmek için Django sunucusunu çalıştırın.

Serileştiriciler için bir Django uygulaması kurun:

adlı bir Django uygulaması oluşturmak için aşağıdaki komutu çalıştırın seri uygulama.

$ python3 yönetmek.py startapp seri uygulaması

Django veritabanına erişmek için kullanıcıyı oluşturmak için aşağıdaki komutu çalıştırın. Kullanıcıyı daha önce oluşturduysanız, komutu çalıştırmanıza gerek yoktur.

$ python3 yönetmek.py createsuperuser

Django REST Framework'ü kurmak için aşağıdaki komutu çalıştırın.

$ pip3 Djangorest çerçevesini kurun

Rest_framework ve uygulama adını şuraya ekleyin: INSTALLED_APP bir bölümü ayarlar.p dosya.

INSTALLED_APPS = [
… .
'rest_framework',
'seri uygulama'
]

Veritabanı tablosu için bir model oluşturun:

modeller.p dosyadan seri uygulama klasörünü açın ve yapısını tanımlamak için aşağıdaki betiği ekleyin müşteriler tablolar. Müşteri class adlı bir tablo oluşturmak için tanımlandı müşteriler ile ad, adres, e-posta, contact_no, ve yaratıldı alanlar. Buraya, isim, e-posta, ve İletişim Numarası alanlar karakter verilerini depolayacak, adres alan metin verilerini depolayacak ve yaratıldı alan DateTime verilerini depolayacaktır.

modeller.p

# Model modülünü içe aktarın
django'dan.db içe aktarma modelleri
# Müşteriler tablosu için model sınıfını tanımlayın
sınıf Müşteri(modeller.modeli):
isim = modeller.CharField(maks_uzunluk=100)
adres = modeller.Metin alanı()
e-posta = modeller.CharField(maks_uzunluk=50)
contact_no = modeller.CharField(maks_uzunluk=20)
oluşturulan = modeller.DateTimeField(auto_now_add=Doğru)

Çalıştır göçler modeller tarafından yapılan değişikliklere dayalı olarak yeni bir geçiş oluşturma komutu.

$ python3 yönetmek.py makemigrations serialapp

Çalıştır göç SQL komutlarını yürütmek ve veritabanında tanımlanan tüm tabloları oluşturmak için komut modeller.p dosya.

$ python3 yönetmek.py göçü

İçeriğini değiştirin yönetici.p aşağıdaki içeriğe sahip dosya. Buraya, müşteri modellerin sınıfı kullanılarak kaydedilir kayıt() görüntüleme yöntemi müşteriler Django yönetim panosundaki tablolar.

yönetici.p

# Yönetici modülünü içe aktar
django'dan.katkıda bulunmak ithalat yöneticisi
# Müşteri modelini içe aktarın
itibaren .modeller müşteri ithal
# Müşteri modelini kaydedin
yönetici.site.kayıt (Müşteri)

url'ler.p

django'dan.url'leri içe aktarma yolu
django'dan.katkıda bulunmak ithalat yöneticisi
url kalıpları = [
# Yönetici için yolu tanımlayın
yol('yönetici/', yönetici.site.URL'ler),
]

Tabloya kayıtları ekleyin:

Django Yönetim sayfasını açın ve içine bazı kayıtlar ekleyin müşteriler tarayıcıda JSON formatında görüntülenen tablo. Burada, üç kayıt eklendi.

Görünümleri değiştir.not:

Görüntüleme.p dosyadan seri uygulama ve içeriği aşağıdaki komut dosyasıyla değiştirin. Müşteri listesi class, tüm müşterilerin kayıtlarını seri hale getirmek ve verileri tarayıcıya JSON formatında döndürmek için tanımlanmıştır. Müşteri Detayı sınıf, belirli müşteri kaydını kimlik değerine göre seri hale getirmek ve tarayıcının verilerini JSON biçiminde döndürmek için tanımlanmıştır. MüşteriSerileştirici bu öğreticinin sonraki bölümünde oluşturulmuş bir serileştiriciler dosyasıdır.

Görüntüleme.p

# Jenerik ilaçları Django REST Çerçevesinden içe aktarın
rest_framework içe aktarma jeneriklerinden
# Müşteri modelini içe aktar
itibaren .modeller müşteri ithal
# CustomerSerializer'ı serileştiricilerden içe aktar
itibaren .serileştiriciler CustomerSerializer'ı içe aktarır
# Müşteriler tablosunun tüm kayıtlarını JSON'a dönüştürmek için sınıfı tanımlayın
sınıf Müşteri Listesi(jenerikler.ListCreateAPIView):
sorgu kümesi = Müşteri.nesneler.herşey()
serializer_class = CustomerSerializer
# Müşteriler tablosunun belirli kaydını JSON'a dönüştürmek için sınıfı tanımlayın
sınıf CustomerDetail(jenerikler.RetrieveUpdateDestroyAPIView):
sorgu kümesi = Müşteri.nesneler.herşey()
serializer_class = CustomerSerializer

Serileştirici Oluştur:

Oluşturmak serileştiriciler.p dosya ile aynı konumda Görüntüleme.p aşağıdaki komut dosyasıyla dosya. ModelSerileştirici sınıf oluşturmak için burada kullanılır MüşteriSerileştirici Müşteri modelinin alanlarıyla serileştiriciler sınıfını döndüren sınıf. JSON formatına dönüştürülecek Müşteri modeli alanları aşağıda belirtilmiştir Meta sınıf.

serileştiriciler.p

# Serileştirici modülünü Django REST Framework'ten içe aktarın
rest_framework içe aktarma serileştiricilerinden
# Müşteri modelini içe aktar
itibaren .modeller müşteri ithal
# Müşteri modeli alanlarını JSON'a dönüştürmek için özel serileştiriciler sınıfını tanımlayın
sınıf CustomerSerializer(serileştiriciler.ModelSerileştirici):
sınıf Meta:
model = Müşteri
alanlar = ('kimlik', 'ad', 'adres', 'e-posta', 'contact_no')

URL'leri değiştirin.py dosyası:

İçeriğini değiştirin url'ler.p aşağıdaki komut dosyasıyla dosya. Senaryoda, 'müşteriler/' yol tüm kayıtları görüntülemek için tanımlanır müşteriler JSON formatında tablo ve 'müşteriler//' yolu, belirli verileri görüntülemek için tanımlanır müşteriler kimlik değerine göre JSON formatında tablo.

url'ler.p

# Yönetici modülünü içe aktar
django'dan.katkıda bulunmak ithalat yöneticisi
# Yolu içe aktar ve modülü dahil et
django'dan.url'leri içe aktarma yolu
# Görünümleri içe aktar
seri uygulama içe aktarma görünümlerinden
# format_suffix_patterns'i Django REST Framework'ten içe aktarın
rest_framework'ten.urlpatterns içe aktarma format_suffix_patterns
url kalıpları = [
# Yönetici için yolu tanımlayın
yol('yönetici/', yönetici.site.URL'ler),
# Tüm müşteri verilerini JSON formatında almanın yolunu tanımlayın
path('müşteriler/', görünümler.Müşteri listesi.as_view()),
# JSON formatında kimliğe dayalı olarak belirli müşteri verilerini alma yolunu tanımlayın
path('müşteriler//', görünümler.Müşteri Detayı.as_view()),
]
urlpatterns = format_suffix_patterns(urlpatterns)

Aşağıdaki URL yürütülürse, müşteriler tablosunun tüm kayıtları JSON biçiminde gösterilecektir.

http://localhost:8000/müşteriler

Aşağıdaki URL yürütülürse ikinci müşterinin kaydı JSON formatında gösterilecektir.

http://localhost:8000/müşteriler/2

Sonuç:

Model örneğini JSON biçimine dönüştürmek için Django uygulamasında serileştiricilerin kullanımı, bu öğreticide basit bir komut dosyası kullanılarak gösterilmiştir. Django kullanıcıları, bu öğreticiyi okuduktan sonra serileştirici kullanmanın amacını anlayacak ve gerekirse bunları kendi uygulamalarında uygulayacaktır.

Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...
0 A.D. Tutorial
Out of the many strategy games out there, 0 A.D. manages to stand out as a comprehensive title and a very deep, tactical game despite being open sourc...
Unity3D Tutorial
Introduction to Unity 3D Unity 3D is a powerful game development engine. It is cross platform that is it allows you to create games for mobile, web, d...