Kayıt Ol

Giriş


Şifremi Kaybettim

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

soru ekleme

You must login to ask question.

Giriş


Kayıt Ol

Merhaba, kayıt formu üzerinden kayıt olabilirsiniz. Fakat sosyal medya ile kayıt olmanızı önermekteyiz.

Django Şablon İçerisinde Model Kullanımı

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.

Hakkında Ali YamanYenilmez

Herzaman bilginin gücüne inanlardan oldum , araştirmalarım ve deneyimlerimlerimi sizlere sunmayı amaçlıyorum. İstanbul Üniversitesi Kontrol ve Otomasyon Öğrencisiyim Elektronik ve Programlama ile ilgim var.


Beni Takip Et

Yorumlar ( 2 )

  1. 1-Yazının baş tarafında model oluşturulurken -python migrate.py makemigrations- *manage.py olacak!!
    2-python manage.py makemigrations şeklinde girilmesi isteniyor.veritabanı oluşturacağınız için bir app oluşturcaksınız ya (startapp). onun ismini yazmalısınız.
    3-Tabloların oluştuğunu görmek için -python manage.py sqlmigrate 0001- yazabilirsiniz
    4-(bonus):yazdığınız modelde(models.py’nin içine yazdığınız kodlar) bi sıkıntı olup olmadığını migrate işlemlerine geçmeden kontrol edebilirsiniz.hata varsa ilk aşamada yakalamış olursunuz kafanız karışmaz.
    -python manage.py check-
    (‘check’ güncellemeden önce validate’miş-https://www.micronbot.com/django/python-manage-validate-sqlall-deprecated.html-)

  2. *düzgün görüntülenmedi yazdıklarım tekrar yazdım.

    1-Yazının baş tarafında model oluşturulurken -python migrate.py makemigrations – *manage.py olacak!!
    2-python manage.py makemigrations app_name–şeklinde girilmesi isteniyor.veritabanı oluşturacağınız için bir app oluşturcaksınız ya (startapp). onun ismini yazmalısınız.
    3-Tabloların oluştuğunu görmek için –python manage.py sqlmigrate app_name 0001– yazabilirsiniz
    4-(bonus):yazdığınız modelde(models.py’nin içine yazdığınız kodlar) bi sıkıntı olup olmadığını migrate işlemlerine geçmeden kontrol edebilirsiniz.hata varsa ilk aşamada yakalamış olursunuz kafanız karışmaz.
    -python manage.py check-
    (‘check’ güncellemeden önce validate’miş-https://www.micronbot.com/django/python-manage-validate-sqlall-deprecated.html-)

Bir Cevap Yaz

Captcha Captcha güncellemek için resime tıkla