Django Şablon İçerisinde Model Kullanımı



Bir önceki makalede, Modellere giriş yaptık. Django Modellere Giriş adlı makaleyi okumadan lütfen buradan devam etmeyin tam verim alınmayacaktır.

Django geliştiricilerinin SQL komutlarıyla uğraşmayacaklarını söylemiştik. Bunun anlamı sizin SQL bilmemeniz gerektiği değildir. İşlerin nasıl yürüdüğünü bilmek adına kesinlikle SQL komutlarını bilmelisiniz. SQL sorgulamalarının Django tarafından otomatik olarak yapılabilmesi için bazı tanımlamaları yapmamız gerekir. Django’da sadece tablolar ve tablodaki anlanları tanımlıyoruz. Bu tanımlamalara model diyoruz. Django veritabanı gücünü “models.py” üzerinden aliyor desek yanlış olmaz. Hadi Başlıyalım !

  • Models.py adlı dosyamızı açalım standart gelen kodları inceliyelim :

from django.db import models# Create your models here.
Django veritabanı tanımlamaları için gerekli olan kütüphane  “django.db” adlı modüldür. Models.py içerisinde kullanabilceğimiz komutların çalışması için gerekli kütüphanedir. Kütüphaneyi “models” olarak import edildiğini görüyorsunuz. Fonksiyon tanımlamalarında “models.Model” olarak kullanacağız. Yani şu anlama geliyor :

django.db içerisindeki Model demektir. Django.db’in türevi(import) models olduğunu söylemiştik.

# Create your models here. : Burada Modelinizi oluştrabilirsiniz diyor ozaman oluşturalım :

  • ogrenciler adlı “Class” oluşturduk ve bir model olduğunu söyledik. (Tablo adı : CREATE TABLE Dediğimiz bölümdür aslında.)
  • adi adlı veri sütünü oluşturduk. Burada “CharField” verisini gördük aslında bu “VarChar” anlamına gelen hertürlü karakteri depolayan anlamına gelmektedir. Bir çok veri tipleri mevcut onun içinde ilerleyen zamanda bir yazı eklicem.
  • CharField aynı zamanda max_length parametreini alır max kaç harf barındıracağını söylediğimiz bölümdür. (VarChar(50) dediğimiz bölümdür aslında)
  • Açıklamalarda parantez içerisinde yazdığım yazılar, SQL bilenler içindir. Konuyu daha iyi anlamaları için arka plandaki olayı anlatmak istedim.

Modelimizi yazdık fakat, Django tarafından oluşturulması için bir kaç kod girmemiz gerekiyor :

İlk Olarak : Oluşacak veritabanlarını listeler. İlk olarak girilmelidir.
python migrate.py makemigrations
İkinci Olarak : Seçilen veritabanların “göçünü” yani oluşturmasını sağlar.
python migrate.py migrate
Modelimizi oluşturduk. Oluşturduğumuza göre Şablon içerisinde kullanabiliriz.

Şablon olarak isimlendirdiğimiz olay “html” sayfalardır.

Şimdi Views.Py dosyasını açalım.

  • Views.py dosyasını açalım ve standart gelen verileri inceliyelim.

from django.shortcuts import render# Create your views here.

  • “django.shortcuts” adlı kütüphanenin eklediğini görüyoruz. HTML sayfaların yönlendirilmesi için kullaniyoruz genelde.

Şablonlar içerisinde Modelleri kullanabilmemiz için “Şablon” içerisine modül olarak eklemiz gerekiyor.

Şu şekilde ekleyebiliriz : from [Views.Py’nin Bulunduğu Klasör] import models

Benim views.py “Blog” adlı klasörde, o halde hadi ekliyelim :

Şimdi “Şablonumuzu Oluşturalım”

“templates” olarak belirlediğiniz konuma “index.html” dosyasını oluşturun ve içerisine şunları yazın :]

Artık Modelimizi Şablon içerisinde kullanabiliriz. Şablon içerisinde “veri ekleme “, “veri silme”, “veri listeleme” şeklinde ilerlemek daha faydalı olacaktır. O halde Sırayla Gidelim :







Django Veri Ekleme (SQlite)

  • Bir değişken’e modelimizi tanımlamalıyız.

  • Models.ogrenciler : Diyerek model içerisinde ögrenciler tablosuna (Adi=’Ali,Soyadi=’Yaman’) verisini ekle anlamına gelmektedir.

veri.save()

  • Tabiki Kayıtlı kalması için kesinlikle “Save” demeliyiz.

Biraz kendinize göre, farklı veriler ekleyin çünkü veri listelemede ihtiyacımız olacak 🙂

Django Veri Ekleme (SQlite)

Şimdi şablonumuzu urls.py içerisinde tanımlıyalım çünkü verileri html sayfasına çekeceğiz.

Views.py içerisine girelim : 

  • Anasayfa adlı bir fonksiyon oluşturduk “request” yani istek geldiğinde “return” ifadesini çalıştıracaktır.
  • vericek ifadesi ile ogrenciler modelindeki tüm objeleri (verileri) cektik. Daha sonra html içerisinde for döngüsü ile listeleyeceğiz.
  • return ifadesi ile hangi html dosyasını çalışçağını belirledik.

Şimdi urls.py içerisine girelim şunu yazalım : 

“Yani” siteye girildiğinde direk anasayfa fonksiyonu çalışsın diyoruz. urls.py son hali şöyle olacaktır :

[pcsh lang=”python” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

Şimdi “index.html” içerisine girelim : 

<body></body> etiketlerin içerisine girelim. Ve aşşağıdakileri yazalım.

  • For döngüsü ile “vericek” ‘in içerisindeki verileri okuduk.
  • Forloop.counter0 diyerek eklenme sırasına göre “0” dan başlatarak listele.
  • oku.adi diyerek ad bilgilerini çektik.
  • oku.soyadi diyerek soyad bilgilerini çektik.
  • <li> etiketleri arasına almamın sebebi liste şeklinde görünmesidir.

Şimdi Sitemizi başlatalım ve çıktıyı görelim :
python manage.py runserver


djngo sablon


Şeklinde çıktı alabiliriz.

NOT :  Filitre ederek listeyebiliriz. 

Adi “ali” olanları listele gibi.

NOT :  İçinde belirli bi harf geçenleri listeyebiliriz.

Django Veri Silme (SQlite)

“Filter” kullanarak adi ali olan soyadi yaman olanı sil diyebilceğiz.

  • öğrenci modelinde parametredeki verileri filitre ederek silme işlemi yapmaktadır.

Umarım faydalı olmuştur. Gerçekten Altın değerinde bir makale olduğunu söyleyebilirim yazarken keyif aldım çünkü Web sitelerin %99’u tüm işlemleri veritabanı ile yapiyorsa “models.py” bizim için okadar değerlidir.


Emoji olarak yorumla :)
eh işte! eh işte!
0
eh işte!
Harika Harika
0
Harika
Hahaha! Hahaha!
0
Hahaha!
Vay be! Vay be!
0
Vay be!
Şekilsin Şekilsin
0
Şekilsin
Muhteşem Muhteşem
0
Muhteşem
Beğendim Beğendim
0
Beğendim
Beğenmedim Beğenmedim
0
Beğenmedim

Django Şablon İçerisinde Model Kullanımı

Giriş Yap

Hoşgeldin, sefa getirdin :)

Şifre Sıfırla

Şifreni bidaha unutma lütfen :)

Geri git :
Giriş Yap