Django

Django'da sorgu kümesi nasıl kullanılır

Django'da sorgu kümesi nasıl kullanılır
Web uygulamalarının çoğu artık veritabanı ile uygulanmaktadır. sorgu kümesi, orijinal verileri değiştirmeden veritabanı tablosunu filtreleyerek veya dilimleyerek veya sıralayarak kayıtları almak için Django uygulamasında kullanılır. Model, veritabanındaki tabloyu oluşturmak için Django'yu kullandı. Bu nedenle, sorgu setinin kullanımını anlamak için modeli Django'da kullanma bilgisi gereklidir. Sorgu kümesinin ana işlevi, veritabanı tablolarının kayıtlarını SQL sorgularına dönüştürerek yinelemektir. Python komut satırından veya tarayıcının çıktısını görüntülemek için python betiği yazılarak kullanılabilir. Bu eğitimde, bir veritabanı tablosundan farklı şekillerde veri almak için sorgu kümesinin kullanımları açıklanmıştır.

Ö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.

Bir Django uygulaması kurun:

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

$ python3 yönetmek.py startapp sorgu 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

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

INSTALLED_APPS = [

'sorgu uygulaması'
]

adlı bir klasör oluşturun şablonlar içinde sorgu uygulaması klasörünü ayarlayın ve şablonun uygulamanın konumu ŞABLONLAR bir bölümü ayarlar.p dosya.

ŞABLONLAR = [

… .
'DIRS': ['/home/fahmida/django_pro/queryapp/templates'],
… .
,
]

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

modeller.p dosyadan sorgu uygulaması klasörünü açın ve yapısını tanımlamak için aşağıdaki betiği ekleyin Ürün:% s tablolar. Ürün class adlı bir tablo oluşturmak için tanımlandı Ürün:% s ile isim, tip, marka, ve fiyat alanlar. Buraya, ad, tür, ve marka alanlar karakter verilerini depolayacak ve fiyat alan tamsayı verilerini depolayacaktır.

modeller.p

# Modelleri içe aktar modülü
django'dan.db içe aktarma modelleri
# Ürünler tablosu oluşturmak için sınıfı tanımlayın
sınıf Ürün(modeller.modeli):
isim = modeller.CharField(maks_uzunluk=100)
tip = modeller.CharField(maks_uzunluk=30)
marka = modeller.CharField(maks_uzunluk=50)
fiyat = modeller.Tamsayı Alanı()

Ç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 sorgu uygulaması

Ç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, modellerin Ürün sınıfıs kullanılarak kaydedilir Kayıt ol() görüntüleme yöntemi Ürün:% s Django yönetim panosundaki tablolar.

yönetici.p

# Yönetici modülünü içe aktar
django'dan.katkıda bulunmak ithalat yöneticisi
# Ürün modelini içe aktar
itibaren .modeller ithalat Ürün
# Ürün modelini kaydet
yönetici.site.kayıt(Ürün)

adlı bir şablon dosyası oluşturun ürün listesi.html içinde sorgu uygulaması/şablonlar/ aşağıdaki komut dosyası ile. Bu komut dosyası tüm verilerini gösterecek Ürün:% s arama kutusu ile tablo biçiminde tablo. Kullanıcı, arama formunu kullanarak ürünler tablosundaki belirli kayıtları arayabilir. için komut dosyasından geçirilen verileri yinelemek için komut dosyasında döngü kullanılır Görüntüleme.p dosya.

ürün listesi.html



<br>Django Sorgu Kümesi Eğitimi<br>



Ürün Arama



% csrf_token %
Ürün Ara:







nesne_listesindeki ürün için %%



% endfor %
İDisimMarkaFiyat
ürün.İD ürün.isim ürün.markastyle="text-align:right">$ürün.fiyat



İçeriğini değiştirin Görüntüleme.p aşağıdaki komut dosyasıyla dosya. Model ve şablon adları, Ürün listesi sınıf. get_queryset() sınıfın yöntemi, şablonun arama kutusu tarafından gönderilen içeriğe göre verileri filtrelemek için komut dosyasında tanımlanır. Ürün.nesneler.herşey() yöntem tüm kayıtları döndürür Ürün:% s masa. istek.ALMAK.anahtarlar() komut dosyasında, arama formu tarafından gönderilen herhangi bir veriyi kontrol etmek için yöntem kullanılır. Bu yöntem dönerse doğru, sonra istek.ALMAK.al('src') gönderilen değerin boş olup olmadığını kontrol etmek için yöntem kullanılır. Bu yöntem boş olmayan bir değer döndürürse, değer değişkende saklanır, anahtar kelime, ve verilere dayalı olarak filtrelemek için kullanılacaktır marka ve tip alanlar Ürün:% s masa.

Görüntüleme.p

# ListView modülünü içe aktar
django'dan.Görüntüleme.genel içe aktarma ListView
# Ürün İçe Aktar modülü
itibaren .modeller ithalat Ürün
# Q modülünü içe aktar
django'dan.db.modeller Q ithal
# Verileri sorgulamak için sınıf tanımlayın
class ProductList(ListView):
# Modeli tanımla
model = Ürün
# Şablonu tanımla
şablon_adı = 'ürün Listesi.html'
def get_queryset(self):
# Varsayılan sorgu kümesini ayarlayın
sorgu kümesi = Ürün.nesneler.herşey()
# Form değerinin gönderilip gönderilmediğini kontrol edin
eğer kendini.istek.ALMAK.anahtarlar():
# Arama anahtar sözcüğünü kontrol edin
eğer kendini.istek.ALMAK.al('src') != ":
anahtar kelime = öz.istek.ALMAK.al('src')
# Arama anahtar sözcüğüne göre sorgu kümesini ayarlayın
sorgu kümesi = Ürün.nesneler.filtre(Q(marka=anahtar kelime.büyük harfle()) | Q(tür=anahtar kelime.büyük harfle()))
sorgu kümesini döndür

İçeriğini değiştirin url'ler.p aşağıdaki komut dosyasıyla dosya. Senaryoda, 'aramaPro/' yolu çağırmak için tanımlanır Ürün listesi.as_view() tüm verileri ve filtrelenmiş verileri gönderecek olan yöntem Ürün:% s şablon dosyasına 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
# SearchEmployee modülünü içe aktar
sorgu uygulamasından.Görünümler Ürün Listesini içe aktar
url kalıpları = [
# Yönetici için yolu tanımlayın
yol('yönetici/', yönetici.site.URL'ler),
# Ürün arama yolunu tanımlayın
path('searchPro/', Ürün Listesi.as_view()),

Tabloya kayıtları ekleyin:

Django Yönetim sayfasını açın ve içine bazı kayıtlar ekleyin Ürün:% s sonra sorgu kümesini uygulamak için tablo. Burada, beş kayıt eklendi.

Aşağıdaki URL yürütüldükten sonra, arama kutusu ile ürünlerin tüm kayıtları tarayıcıda görüntülenecektir.

http://localhost:8000/searchPro


Görüntülenen tüm şampuan ürünleri ürün tipi ise, 'şampuan' arama kutusunda aranacak.

Süt tozu ürünleri taze marka ürün markası ise görüntülenecektir, 'taze' arama kutusunda aranacak.

Sonuç:

Basit bir veritabanı tablosundaki verileri Queryset kullanarak filtrelemenin yolu bu eğitimde anlatılmıştır. Veriler farklı şekillerde filtrelenebilir. Okuyucular, bu öğreticiyi okuduktan sonra tarayıcıda verileri filtrelemek veya aramak için bir sorgu kümesi kullanmayı anlayacaklardır.

Gamecube & Wii için en yeni Dolphin Emulator'ı Linux'a yükleyin
Dolphin Emulator, seçtiğiniz Gamecube & Wii oyunlarını Linux Kişisel Bilgisayarlarda (PC) oynamanıza izin verir. Ücretsiz olarak kullanılabilen ve aç...
Linux'ta GameConqueror Cheat Engine Nasıl Kullanılır
Makale, Linux'ta GameConqueror hile motorunu kullanma hakkında bir kılavuzu kapsar. Windows'ta oyun oynayan birçok kullanıcı, oyun deneyimini geliştir...
Linux için En İyi Oyun Konsolu Emülatörleri
Bu makale, Linux için kullanılabilen popüler oyun konsolu öykünme yazılımını listeleyecektir. Öykünme, oyun konsollarının, komut setlerinin ve ilgili ...