Register Now

Login


Lost Password

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

Add question

You must login to ask question .

Login


Register Now

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

Django Dinamik İçerikler

Django Dinamik İçerikler


Dinamik İçerikler

Şimdiye kadar oluşturduğumuz görünümleri tarayıcıda işletebilmek için urls.py adlı dosyada adres olarak belirtmemiz gerekiyordu. İşimizi biraz daha zorlaştırıp, bu adresleri çoğaltalım.

Örnek : Bir fakültede açılan derslerin içeriğini görüntülemek istediğimizi düşünelim. Fakütelerde derslerin genellikle kodları olur. Örneğin Ax0100,Ax0101,Ax0102,Ax0103 şeklinde dersler olsun. Bunların içeriğini şu şekilde sunalım :


127.0.0.1:8000/dersler/Ax0101

127.0.0.1:8000/dersler/Ax0102

127.0.0.1:8000/dersler/Ax0103 

127.0.0.1:8000/dersler/Ax0104 


Eğer bunların her birinin urls.py dosyasına eklenecek ise işimiz epeyce zor. Bunların daha çok olduğunu düşünürsek imkansız…

Bu sorunu Django’nun dinamik adreslerini kullanarak çözebiliriz : 

  • Blog Adlı uygulama oluşturup , proje dosyasının içerisine views.py adlı dosya kuralım.

Aynı şeyleri tekrar etmemek adına, Djangoda proje nasıl oluşturulur bir yazı yazmıştım : Django Proje Oluşturma

Bu makaleyi okuyun, projenizi oluşturun tekrar buradan devam ederseniz daha sağlıklı olacaktır. Proje oluşturduğunuzu varsayıyorum o halde…


Blog/

    __init__.py

   settings.py

   urls.py

   wsgi.py

manage.py


Yapının böyle olacaktır o halde :

Öncelikle “Urls.py” adlı açalım , Views.py modülünü urls.py’e ekliyelim. Çünkü views.py içerisinde yazdığımız fonksiyonları çağırabilmek içindir.
from . import views
Şimdi adresimizi belirtelim urls.py içerisinde :

Buradaki “Ax0\d+” deseninde bir düzenli ifadeyi(reqex) göstermektedir. Python’un düzenli ifadeleri için google’dan arama yapabilirsiniz. Düzenli ifadelerde \d tek bir sayı anlamına gelir, + ise bir önceki desenden bir veya daha fazlası anlamına gelmektedir. Yani yapı şöyle oluyor  :

Burada “derskodu” olarak belirnen bölüm “\d+” bölümüdür. Şimdi fonksiyonumuzu yazalım daha iyi anlayacaksınız.

Öncelikle Html yanıt vereceğimiz için kütüphaneyi ekliyelim :

Kütüphaneyi eklediğimize göre fonksiyonu yazmaya başlıyalım :

Fonksiyonu oluşturduk, veritabanı şu aşamada kullanmıyacağız o yüzden bir sözlük yapısı kuralım.

Özelliğide ismi gibidir, “kod” : ” açıklama” şeklinde eşleme yapılır bu eşleme sonuçunda kontroller oluşur. Şimdi kontrollerimizi oluşturalım :

Dinamik içeriklerimiz oluşturuldu.

İlgili konuma giderek projemizi başlatalım, yukarda verdiğim  Django Proje Oluşturma yazısında bunların hepsi anlatılıyor.
python manage.py runserver
Şimdi sitemize girip kontrol edelim .

Mevcut ders kodunu aradığımız sonuç şöyle olacaktır : 

django dinamik icerikler

Şimdi ise, ders kodun olmadığı bir arama yapalım : 

django dinamik yazi

 

About Ali YamanProfesyonel

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.

Follow Me

Leave a reply

Captcha Click on image to update the captcha .