Django Nedir?Proje Oluşturma Template ve Url Yapısı

Beste Kucuk
4 min readMar 27, 2023

--

Django, Python programlama dilinde yazılmış açık kaynaklı bir web çerçevesidir. Web siteleri ve web uygulamaları geliştirmek için kullanılır. Django, “model-view-controller” (MVC) tasarım desenine dayalı bir “model-view-template” (MVT) mimarisi kullanır.

Django Amacı Nedir?

Django Projesi’nin temel amacı, karmaşık bir yapıda olan web uygulamalarının kullanımını kolaylaştırmaktır. Django yeniden kullanılabilirlik, modülerlik, hızlı geliştirme süreci politikasına sahip bir yapıda tasarlanmaktadır.web geliştirme süresini önemli ölçüde azaltmak için Django web çerçevesini kullanır.

Sonuç olarak, Django, web uygulamaları geliştirmek için çok güçlü ve ölçeklenebilir bir araçtır. Django kullanarak, dinamik ve güvenli web uygulamaları oluşturmak kolaydır ve büyük web uygulamaları için de uygun bir seçenektir.

Temel Özellikleri:

1-Veritabanı yönetimi: Django, SQLite, PostgreSQL, MySQL ve Oracle gibi popüler veritabanlarıyla entegre olabilen bir ORM (Object-Relational Mapping) sistemi sağlar.

2-URL Routing: Django, gelen istekleri doğru uygulama ve görünüme yönlendirmek için kullanıcı dostu URL’ler oluşturmanıza olanak tanır.

3-Güvenlik: Django, saldırılardan korunmak için birçok güvenlik önlemi sağlar. Bu önlemler arasında Cross-Site Request Forgery (CSRF) koruması, XSS (Cross-Site Scripting) koruması ve SQL enjeksiyonu koruması bulunur.

4-Admin Arayüzü: Django, uygulama modellerinizi yönetmek için kullanabileceğiniz otomatik bir yönetim arayüzü sağlar. Bu arayüz, site yöneticilerinin veritabanındaki verileri kolayca eklemesine, değiştirmesine ve silmesine olanak tanır.

5-Detaylı hata sayfaları sunar.PHP diline göre hata raporundaki detay daha fazladır.

6- Django kendini sürekli yenileyen bir Şablona sahiptir.

Django’yu Kullanan Web Siteleri:

  1. Instagram
  2. Pinterest
  3. The Washington Post
  4. Mozilla
  5. National Geographic
  6. Spotify
  7. Eventbrite
  8. Dropbox
  9. Bitbucket

Django Proje Oluşturma

python django-admin startproject courseapp
python manage.py runserver 
---><http://127.0.0.1:8000> gider

Uygulama Oluşturma

**:\\Users\\beste\\Desktop\\django-projects\\courseapp>python manage.py startapp courses**

INSTALLED_APPS (settings.py içindeki) da hali hazırda kurulan uygulamalar gösterilmektedir. Biz paket indirdiğimizde veya uygulama yazdığımızda aktifleştirmek için bu alana eklememiz gerekmektedir.

💡 Static ve template dosyaları eklendiğinde global olarak setting de eklenmesi gerekir.

Django — Url, View, Templates

Url →

urlpatterns = [
path('' , include('pages.urls')),
path('kurs/' , include('courses.urls')),
path('admin/', admin.site.urls),
]

→İkinci url Courses uygulamasının urls.py sayfasına git der.

urlpatterns = [
path('',views.index),
path ('list',views.kurslar),
path ('<slug:slug>',views.details,name="course_details"),
path('kategori/<int:category_id>',views.getCourseByCategoryId),
path('kategori/<str:category_name>',views.getCourseByCategory, name='courses_by_category'),

#degisken tanımlayarak dinamik url olusturduk.
]

buradaki url ler views.py ye yönlendirir.Bazılarının paremetreleri vardır.Daha sonra viewsdaki kendilerine ait metodları gercekleştirirler.

Kategoriye göre kurs getirme.courses dosyası altındaki kurslar.html sayfasını cevap olarak döndürür.

html e parametre olarak iki obje gönderir. (category ve category_text)

View →

def getCourseByCategory(request,category_name):
try:
category_text =data[category_name];
# return HttpResponse(category_text)
return render(request,'courses/partials/kurslar.html',{
'category':category_name,
'category_text':category_text
})
except:
return HttpResponseNotFound("yanlış kategori seçimi")

http://127.0.0.1:8000/kurs/kategori/programlama

Template →

{% extends ‘layout.html’ %} global olarak tanımlanan templati getirir ve buradaki blockları({% block content %}) layout içine yerleştirir.Yani layout ile kendi html ini birleştirir.

category
category_text — → viewdan gelen objeler.

{% block content %}   {% endblock content %}
#hangi url ye istek atıldıysa onun index sayfasına gider

LAYOUT →

Ana sayfadır.

Sürekli olarak kullanılan navbar ayrı bir template oluşturulur.

{% include ‘partials/_nav.html’ %} ile partial view ana sayfaya çağrılır.Farklı bir yerde tutmak tasarımda değişiklik yapmak istendiğinde işeri kolaylaştırır.

Static: Static olarak eklediğimiz dosyaları img gibi sayfada çağırmamızı sağlar.Static kullandığımız her sayfanın basına load static snippet i kullanmak zorundayız.

{% static ‘css/bootstrap.min.css’ %} static dosyası içindeki css kütüphanesini çağırır.

--

--

Beste Kucuk

A day dreamer software student who loves software, science and art