piton

Django ORM Nedir??

Django ORM Nedir??
Günümüz dünyasında, çevremizdeki her şeyin dijitalleşmesiyle birlikte teknoloji hayatımızın ayrılmaz bir parçası haline geldi. Bu iş sektöründe bile geçerli. Doğru altyapıyı kullanamayan ve doğru teknolojik mimariyi donatamayan işletmeler rakiplerinin gerisinde kalıyor. Bunun temel nedeni, günümüzde işletmelerin ve kuruluşların analizleri için güvendikleri veri miktarının katlanarak artması ve sonuç olarak, bunları verimli bir şekilde işleyebilmeleri ve yorumlayabilmeleri için doğru veri setine sahip olmaları gerektiğidir. destekleyecek araçlar ve altyapı.

Veritabanları, verilerin kolayca erişilebilir, yönetilebilir ve güncel olmasını sağladığı için verilerin toplanması ve düzenlenmesi için kullanılan en popüler teknolojilerden biridir. Ancak bu veritabanları, bu görevleri yerine getirebilmeleri için bir yönetim sistemi gerektirir. Çoğunlukla, SQL dili bir veritabanındaki işlemleri gerçekleştirmek için kullanılır, ancak uygulamanız büyüdükçe ve daha karmaşık hale geldikçe, her bir işlemin tam olarak ne yaptığına dair bir fikre sahip olmak son derece zorlaşır. Bu, Nesne İlişkisel Eşleme (ORM) tekniğinin resme girdiği yerdir. Bu, seçtiğiniz bir nesne yönelimli programlama dilini kullanarak verilerin sorgulanmasına ve işlenmesine izin verir. ORM'ler, kodunuzun karmaşıklığını azaltır ve daha anlaşılır hale getirir, bu da kodu güncellemeyi, korumayı ve yeniden kullanmayı kolaylaştırır.

Bu yazımızda Python tabanlı bir ORM olan ve bu nedenle günümüzde kullanılan en popüler teknolojilerden biri olan Django ORM'yi inceleyeceğiz.

Django nedir?

Django'nun ORM'sine bakmadan önce, Django adı verilen bu Pythonic teknolojisinin gerçekte ne olduğunu görelim.

Django, Python'da tasarlanmış ücretsiz ve açık kaynaklı bir web çerçevesidir ve bu nedenle basit, esnek, güvenilir ve ölçeklenebilir olmasının yanı sıra çok temiz ve düzenli bir tasarıma sahiptir. Kullanıcılara her şeyi sıfırdan yazmalarını engelleyen ve sonuç olarak işlerini daha hızlı hale getiren ve web sitelerindeki ek yükü azaltan hazır bileşenler sağladığı için web geliştiricileri için işleri son derece kolaylaştırır. Buna ek olarak, son derece güvenlidir ve kullanıcıların UI düzeltme saldırıları, SQL enjeksiyonları vb. gibi güvenlik endişelerinden kaçınmasına yardımcı olur. Ayrıca forumlar aracılığıyla her zaman erişilebilen ve başkalarına yardım etmeye her zaman hazır olan son derece geniş bir topluluğa sahiptir.

Şimdi nihayet Django ORM'ye ve bazı temel özelliklerine bakalım.

Django ORM'ye Erişmek

Django'yu kurduktan ve projesini kurduktan sonra, genellikle aşağıdaki ilk dosyalar sağlanır:

buradaki mysite, oluşturduğunuz projenin adını ifade eder. Tüm bu dosyaların kendi kullanımları vardır ve her dosyanın hangi rolü oynadığını bilmek önemlidir. Buradaki odak noktamız yönetim olacak.py dosyası bizim için sunucu kurmak, geçiş yapmak, veritabanı ile iletişim kurmak ve ORM moduna girmek gibi birçok farklı şeyi kontrol edecek.

Django ORM'yi açmak için Django projenizin ana dizininden bir komut satırı açın ve aşağıdaki komutu çalıştırın:

$ piton yönetmek.py kabuğu

Bu, bizim için ORM'yi kullanarak veritabanıyla etkileşime başlamamıza izin verecek etkileşimli bir kabuk açacaktır.

Django ORM'de Sorguları Kullanarak Veritabanını Manipüle Etme

ORM, veritabanı ile etkileşime girmemize izin verdiğinden, artık verileri veritabanından almak ve işlemek için farklı sorgular yazabiliriz. Ancak, kabuktaki veritabanı üzerinde çalışmaya başlamadan önce, onunla ilişkili tüm modelleri içe aktarmalıyız. Bu, aşağıda gösterildiği gibi etkileşimli kabukta bir komut çalıştırarak yapılabilir:

appName'den $.modeller import modelName

Burada, appName, oluşturduğunuz uygulamanızın adını ve dolayısıyla modellerinizin şu anda depolandığı yeri ifade eder. ModelName, içe aktarmak ve kullanmak istediğiniz modelin adını belirtir. Aşağıdaki örnekte görüldüğü gibi, burada içe aktarılan birden fazla modeliniz olabilir:

Artık model nesnesine erişebilir ve ondan veri okuyabilirsiniz. Örneğin, tüm gönderilerin listesini istiyorsak, terminalimize aşağıdaki komutu çalıştırarak bunları kolayca alabiliriz:

$ Gönderi.nesneler.herşey()

Yukarıdaki komutun sonucu aşağıdaki gibidir:

ORM'de yeni veritabanı verileri oluşturmak, verileri güncellemek ve yapabileceğiniz diğer tüm veritabanı komutları gibi birkaç başka şey yapabiliriz.

Veritabanı Modelleme

Django ORM'nin kullanıcılarına sağladığı en iyi şeylerden biri, modelinizin nesnesinin nitelikleri ile karşılık gelen tablo alanları arasında otomatik olarak bağlantı kurma ve ilişkiler kurma yeteneğidir. Veritabanlarında temel olarak üç tür ilişki vardır. bunlar Bire Bir ilişki, Bire Çok veya Çoka Bir ilişki ve Çoka Çok ilişkilerdir.

Bire Bir ilişki, adından da anlaşılacağı gibi, bir tablonun kaydının başka bir tablonun tek bir kaydına karşılık geldiği yerdir. Django ORM'de bunu aşağıdaki gibi kolayca kurabiliriz:

sınıf Ebeveyn(modeller.modeli):
kullanıcı = modeller.OneToOneField(
kullanıcı,
on_delete=modeller.ÇAĞLAYAN,
birincil_key=Doğru,
)
name_of_father = modeller.CharField(maks_uzunluk=100)
name_of_mother = modeller.CharField(maks_uzunluk=100)

Burada, her kullanıcının yalnızca tek bir biyolojik ebeveyni olabilir ve bu nedenle bu bire bir ilişkidir. Şimdi, bu modele erişen herhangi bir kullanıcıyı silersek, 2'nin modelini de silernd birbirlerine bağımlı oldukları için kullanıcı.

Bire çoğa veya çoktan çoğa, bir üst kaydın birden fazla alt kaydının olabileceği bir ilişkiyi ifade eder, ancak yalnızca bir çocuğu olabilir veya hiç çocuğu olmayabilir. Django ORM'de, bu ilişkiyi aşağıdakileri kullanarak kolayca kurabiliriz: Yabancı anahtar alan:

sınıf Müşteri(modeller.modeli):
isim = modeller.CharField(maks_uzunluk=255)
sınıf Araç(modeller.modeli):
müşteri = modeller.Yabancı anahtar(
Müşteri,
on_delete=modeller.ÇAĞLAYAN
)

Yukarıdaki kodda görüldüğü gibi, bir müşteri birden fazla araca sahip olabilir.

Son olarak, çoktan çoğa ilişkiler, birden çok tablonun birbiriyle ilişkili olabileceği bir ilişki tanımlar. kullanarak bunu oluşturabiliriz ManyToMany alan. Aşağıdaki örnekte, biri kullanıcı için diğeri ise gönderileri için iki model oluşturduk. Her kullanıcının birden fazla gönderisi olabileceğinden, birden fazla kullanıcı da olabilir.

sınıf Kullanıcı(modeller.modeli):
yazı = modeller.ManyToManyField(Gönder, boş=Doğru)
arkadaşlar = modeller.ManyToManyField(ayarlar.AUTH_USER_MODEL, boş=Doğru)
sınıf Gönderi(modeller.modeli):
yazı = modeller.Metin alanı()
beğeniler = modeller.ManyToManyField(ayarlar.AUTH_USER_MODEL, boş=Doğru, ilgili_adı='user_likes')

Sonuç

Django ORM son derece güçlü bir araçtır ve web geliştiricilerinin işini çok daha kolay hale getirmiştir. Veritabanı modellerinin manipülasyonu, modeller arasında ilişki kurulması ve çok daha fazlası gibi çeşitli özelliklere sahiptir. Özetle, Django ORM, Django ile gelen en iyi şeylerden biridir ve kendisine sağlanan işte oldukça etkilidir.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Remap your mouse buttons differently for different software with X-Mouse Button Control
Maybe you need a tool that could make your mouse's control change with every application that you use. If this is the case, you can try out an applica...
Microsoft Sculpt Touch Wireless Mouse Review
I recently read about the Microsoft Sculpt Touch wireless mouse and decided to buy it. After using it for a while, I decided to share my experience wi...