"Enter"a basıp içeriğe geçin

Django’da veriler nasıl filtrelenir – Linux ipucu

Bir web uygulaması için çok yaygın bir gereklilik, kullanıcının ilgisine dayalı olarak web sayfasındaki verileri görüntülemektir. Uygulamadaki arama özelliği, onu daha kullanıcı dostu hale getirir. Yerleşik Django çerçevesi filtrelendi () Veritabanı tablolarından veriler nasıl filtrelenir? Bir tablo birçok kayıt içerebilir ve bazen belirli ölçütlere göre bazı özel verilerin belirtilmesi gerekir. Bu görevi kullanmak daha kolay hale gelir. filtrelendi () yöntem farklı şekillerde. Bu öğretici, bir veritabanı tablosundaki verilerin filtre yöntemini kullanarak dört farklı şekilde nasıl filtreleneceğini tartışacaktır.

Temel gereksinimler

Bu öğretici örnekleri izlemeden önce aşağıdaki görevleri tamamlamanız gerekir:

  1. Ubuntu 20+ üzerine Django 3+ kurun (tercih edilir)
  2. Django projesi oluşturma
  3. Sunucunun düzgün çalışıp çalışmadığını kontrol etmek için django sunucusunu çalıştırın.

Django uygulamasını yükleyin

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

$python3 Manage.py startapp filtre uygulaması

B. Django veritabanına erişecek 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 Manage.py süper kullanıcıyı oluşturur

c. Uygulama adını şuraya ekleyin: INSTALED_APP den bir bölüm s bir dosya.

YÜKLENEN_APPS = [
…..
‘filtre uygulaması’
]

N.Ş. Adı olan bir klasör oluşturun Şablonlar içeri Filtre uygulaması Klasörü ayarlayın ve Kalıp uygulama sitesi Şablonlar den bir bölüm s bir dosya.

şablonlar = [
{
….
‘DIRS’: [‘/home/fahmida/django_pro/filterapp/templates’]Ve
….
},
]

Örnek bir veritabanı tablosu oluşturun

açlıktan ölme modeller.py dosyadan Filtre uygulaması Klasörü açın ve yapısını tanımlamak için aşağıdaki betiği ekleyin. çalışanlar tablolar. Çalışan Class adında bir tablo oluşturmak için tanımlanır. çalışanlar ile birlikte isim, posta, e-posta, departman, E katılma tarihi alanlar. Burada, İsim ve posta ücretiBeşinci  Bölüm, Bölümler alanlar karakter verilerini depolayacak, E-posta Etki alanı ve e-posta adresi katılma tarihi Alan, tarih verilerini saklayacaktır.

modeller.py

# Modül içe aktarma formu
İtibaren Django.dbithalat teklif veren
# Çalışan tablosunu oluşturmak için sınıfı tanımlayın
Sınıf Çalışan(teklif verenModeli):
İsim = teklif verenkişisel mesafe(maksimum uzunluk=50)
İleti = teklif verenkişisel mesafe(maksimum uzunluk=40)
E-posta= teklif verene-posta alanı()
 Bölüm, Bölümler = teklif verenkişisel mesafe(maksimum uzunluk=30)
katılma tarihi = teklif verentarih alanı()

Olmak göçler Formlar tarafından yapılan değişikliklere dayalı olarak yeni bir geçiş oluşturma komutu.

python3 Manage.py makemigrations filterapp

Olmak göçmenlik SQL komutlarını yürütmek ve veritabanında belirtilen tüm tabloları oluşturmak için bir komut modeller.py bir dosya.

$ python3 geçiş yönetimi

İçeriğini değiştir admin.py aşağıdaki içeriğe sahip dosya. Burada, Çalışan Formlar sınıf kullanılarak kaydedilir Kayıt ol() stili göster çalışan kayıtları Django yönetici panosundaki tablolar.

admin.py

# İthalat yönetimi modülü
İtibaren Django.Katkıda bulunmakithalat yönetici
# Çalışan formunu içe aktar
İtibaren .teklif verenithalat Çalışan
# Çalışan formu kaydedin
yönetici.şu anda.Kayıt ol(Çalışan)

Django yönetici oturum açma sayfasını açmak için aşağıdaki URL’yi çalıştırın. Kilidi açmak için geçerli bir kullanıcı adı ve şifre girin. Django yönetici panosu Veritabanı tablolarına erişmek için.

Filtreyi verilere uygulamak için iki veya daha fazla çalışan kaydı ekleyin. Burada beş kayıt eklendi.

Oluşturmak search.html dosya içinde filtre uygula / şablonlar / aşağıdaki metni içeren klasör. Alınan veri Çalışan Tablo bu şablon dosyasında görüntülenecektir. için Döngü içeriğini okumak için kullanılır. nesnelerin listesi Görüntü dosyasından geçirilecek değişken. NS İsim ve posta ücretiBeşinci  Bölüm, Bölümler Değer çalışanlar Tablo, menü kullanılarak görüntülenecektir.

search.html

<Başlık>
Django filtre sınıfları
</Başlık>
<h1biçim=sol kenar boşluğu: 20 piksel>İşçi listesi</h1>
<ol>
{object_listedeki emp için %%}
<Bana ait>
<sbiçim=yazı tipi boyutu: 20 piksel>B>{{iş adı}}</B> ({{em.post}})</s>
<sbiçim=yazı tipi boyutu: 18 piksel>{{emp.department}} ayrıl</s>
</Bana ait>
{%endfor%}
</ol>

açlıktan ölme görünümler.py dosyadan Filtre uygulaması Klasörü açın ve dosyanın içeriğini aşağıdaki metinle değiştirin. Form ve şablon adları komut dosyasında tanımlanır.

görünümler.py

# ListView modülünü içe aktar
İtibaren Django.Denetleme.genelithalat Menüyü göster
# Çalışan modülünü içe aktar
İtibaren .teklif verenithalat Çalışan
# Q modülünü içe aktar
İtibaren Django.db.teklif verenithalat s
# Verileri filtrelemek için bir kategori tanımlayın
Sınıf bir çalışan bul(Menüyü göster):
# Formu tanımlayın
Modeli = Çalışan
# Şablon tanımı
Şablon adı =“arama.html”

İçeriğini değiştir urls.py aşağıdaki içeriğe sahip dosya. Metinde,İşveren Ara‘ yolu çağırmak için tanımlanır SearchEmployee.as_view() Tüm verileri ve filtrelenmiş verileri gönderecek yöntem çalışanlar tablodan şablon dosyasına.

urls.py

# İthalat yönetimi modülü
İtibaren Django.Katkıda bulunmakithalat yönetici
# İçe aktarma yolu ve modülü dahil etme
İtibaren Django.url’lerithalat yolVe birleştirmek için
# Çalışan arama modülünü içe aktarın
İtibaren Filtre uygulamasıDenetlemeithalat bir çalışan bul
url stilleri =[
# Yönetici için yolu tanımlayın
yol(‘yönetici/’, yönetici.alan.url’ler),
# Arama yolunu tanımlayın
yol(‘aramaEmp/’, AraÇalışan.as_view()),
]

Aşağıdaki çıktı, aşağıdaki URL’de herhangi bir filtreleme yapılmadan görünecektir.

8000 / arama

Verileri basit bir filtreyle filtreleyin

Sonuna aşağıdaki satırı ekleyin görünümler.py kayıtlarını filtrelemek için dosya çalışanlar değeri olan tablo İleti şu andaMuhasebeci“.

# Temel filtre uygulaması
sorgu seti = Çalışan.Şeyler.filtrelenmiş(İleti =‘Muhasebeci’)

Temel filtreyi uyguladıktan sonra aşağıdaki çıktı görünecektir.

Verileri birden çok alanla filtreleyin

Sonuna aşağıdaki satırı ekleyin görünümler.py kayıtlarını filtrelemek için dosya çalışanlar değeri olan tablo  Bölüm, Bölümler şu andaHTE E-posta şu anda [e-posta korumalı].

# Birden çok alanla filtre uygula
sorgu seti = Çalışan.Şeyler.filtrelenmiş( Bölüm, Bölümler=‘BEN’VeE-posta=[e-posta korumalı])

Çoklu filtreleme uygulandıktan sonra aşağıdaki çıktı görünecektir.

Verileri Q Nesnesi ile filtreleyin

Sonuna aşağıdaki satırı ekleyin görünümler.py kayıtlarını filtrelemek için dosya çalışanlar değeri olan tablo İleti şu andayöneticiveya değer  Bölüm, Bölümler şu andasatış“.

# Q nesnelerini kullanarak filtre uygula
sorgu seti = Çalışan.Şeyler.filtrelenmiş( s(İleti=‘yönetici’) | s( Bölüm, Bölümler=‘satış’))

Q nesne filtresini uyguladıktan sonra aşağıdaki çıktı görünecektir.

Sıra filtrelemeyi kullanarak verileri filtreleyin

Sonuna aşağıdaki satırı ekleyin görünümler.py kayıtlarını filtrelemek için dosya çalışanlar değeri olan tablo  Bölüm, Bölümler Önce alanı kontrol edecek ve değerini true olarak döndürürse İsim Alan taranacaktır.

# Zincirleme filtre uygulaması
sorgu seti = Çalışan.Şeyler.filtrelenmiş( Bölüm, Bölümler=‘BEN’).filtrelenmiş(İsim=“Mihrap Hüseyin”)

Filtre sırasını uyguladıktan sonra aşağıdaki çıktı görünecektir.

çözüm

Veriler, uygulamanın gereksinimlerine göre Django’da çeşitli şekillerde filtrelenebilir. Django filtrelemenin temellerini anlamak için bu eğitimde dört farklı filtreleme yöntemi açıklanmaktadır. Bunlar basit filtreleme, çoklu filtreleme, Q nesne filtreleme ve filtre zincirlemedir.

Diğer gönderilerimize göz at

[wpcin-random-posts]

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir