Django - Dinamik Modeller

İçindekiler
İçinde Django sınıflar nesnelerdir piton, Diğer herhangi bir nesne gibi, tüm özelliklere sahip olduğumuz gerçeği sayesinde, programın yürütülmesi sırasında birçok ilginç efekt elde edebiliriz. Python işlevleri ve yöntemleri Django'da dinamik sınıflar oluşturabilen sınıflar oluşturabiliriz.
Dinamik bir sınıf oluşturmak, bir sınıftan model oluşturmak, böylece yeni işlevler üretmek gibi bazı avantajlar sağlayabilir.
Sınıflar Çerçevede Nasıl Çalışır?
Dinamik modeller üretme noktasına gelmek için öncelikle sınıfların Python'da nasıl çalıştığını anladığımızdan emin olmalıyız.
sınıflarda olduğunu biliyoruz piton dahili kurucu kullanılarak çalışma zamanında oluşturulabilen nesnelerdir. tip () ve nasıl tanımlanmaları gerektiğinin ayrıntılarını almak.
Django'daki modeller
Python'da sınıfların nasıl çalıştığını bildiğimiz için, şunu vurgulamalıyız ki, Django'daki modeller bunlar standart Python sınıflarıdır, yalnızca şu şekilde bildirilirler: Django bunları kullanabilirsiniz ve standart sınıflar olmaları, çalışma zamanında modeller oluşturmamızı sağlar.
İlk Uygulama
Aşağıdaki resmi küçük bir kodla görelim:

Burada nasıl olduğunu görüyoruz Django çerçevesi Modeller modülünü içe aktarıyoruz, ardından modelleri oluşturmak için bir yöntem oluşturuyoruz. yapıcı türü () öğreticinin önceki noktasında bahsettiğimiz.
Ancak uyguladığımız bu basit yaklaşım kesinlikle işe yaramayacak, sorun şu ki Django bir sözlüğün koduyla birlikte bir modül içermesini bekliyor.
Şimdi bu sorunu çözeceğimiz bir kod görelim:
 def create_model (name, module_path): dönüş türü (ad, (models.Model,), {'__module__': module_path}) 

Bu uygulama ile ilk örnekle ortaya çıkan ilk hatayı ortadan kaldırdık.
Yapılandırma Seçenekleri Ekle
Seçeneklerini dahil edebilme olasılığı da dahil olmak üzere dinamik modeller oluşturmak için kodumuzu tamamlayacağız. django yapılandırması, bunun için kullanacağız meta sınıfı ve yeni uygulamamızın seçenekleri nasıl ele alacağımızı yeniden tanımlamamıza izin vermesi için çalışmasının üzerine yazacağız, hadi aşağıdaki resimde bunu başarmak için zaten tamamlanmış kodu görelim:

Bu kodda, ilk kodumuzun bazı yönlerini açıkça değiştirdik, modülün yolunu tanımlayarak başlıyoruz: Django.db.modelleri, buradan ilk tanımları alacağız, bu gerçekleştiğinde onu atadığımız bir sözlük oluşturuyoruz. __modül__ tanımladığımız yolun değeri.
Sonra Meta sınıfını yeniden çalıştırıyoruz, bununla bu noktanın başında tartıştığımız olası sorunları kurtarıyoruz, sonunda tür () yöntemi, gerekli verileri iletmek ve hata değil.
Oluşturduğumuz bu yeni bilgi ile, kod ile etkileşime geçebileceğimiz sağlam bir temele sahibiz. Django programımızın yürütme süresinde dinamik olarak uygulamalarımızın geliştirilmesi ve modellerin üretilmesi için bizi avantajlı bir konuma getiren daha güvenli bir şekilde.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave