Gerçek hayatta Django I: Sinsi ‘sinyal’ yürütümü


“Gerçek hayatta Django” olarak isimlendirdiğim yazı serisinin ilk yazısına hoş geldiniz. Bu seride, engin Django deneyimlerimi sizlerle paylaşıyorum.

İlk yazı olmasından ötürü ufak bir konsept tanımı yapacağım. Genel olarak, Django’da yaptığım hataları, bunları nasıl çözdüğümü ve şöyle böyle kazandığım tecrübeleri sizlere aktaracağım.

Ana amacım, Django ile fazla haşır neşir olmayan veya yeni başlayan geliştiricilerin bu tarz yazıları okuyup “vay anasını” demelerini sağlamak, mümkünse ekşi sözlükte “öğrenildiğinde ufku iki katına çıkaran şeyler” başlığının altında bu yazıların linklerin paylaşılmasını sağlamak (hehe).

Read more ⟶

Bir Django projesinin yapısı


Django’yu öğrenmek isteyenlerin kafasını karıştıran konseptlerden biri, basit bir Django projesinin hiyerarşik yapısı ve bunun nasıl çalıştığıdır. Bir Django projesi başlatmak için önce sanal bir ortam oluşturun, bu ortama Django’yu yükleyin, ardından şu komutu çalıştırın:

django-admin startproject myproject

Bu komutu çalıştırdığınız dizinde myproject isimli bir klasör oluşacaktır. Bu klasöre girerseniz ana dizinde manage.py isimli bir dosya göreceksiniz. Bu dosyayı kullanarak Django’yu ayağa kaldırabilirsiniz:

Read more ⟶

Web Accessibility & Suggestions


Web accessibility defines a broad spectrum of practices that make browsing the internet more accessible. Through the increased focus on accessibility of the web pages, it becomes possible to make a website inclusive to a variety of disability groups including but not limited to those with visual, auditory, and motor impairments. The accessibility of web pages gained more importance as the world wide web became a standard and the implementation of web browsers ended up in many devices we use today. Thanks to this distributed aspect of the web, it has become easier to draft standards for it, since websites rely on the same protocol, and not every device needs adjustment based on their capabilities.

Read more ⟶

Python ile metaprogramlamaya bir bakış


Haddim olmasa da bu konu hakkında bir yazı yazmak istiyorum zira bu konu hakkında Türkçe kaynakların bolluğundan yakınmıyoruz; aynı zamanda yazmak kişisel öğrenmemin de bir parçası.

Önce tanımlamak gerekirse, metaprogramlama (programlama üstü ya da üst programlama) adından da anlaşılacağı üzerinde program programlamayı bir problem olarak inceliyor.

Bir başka deyişle, normal işlerimizde bir program yazarız ve bu program bir “problem”i çözer. Eğer çözdüğünüz “problem” programlama ile ilgili ise metaprogramlama yapıyorsunuz demektir.

Read more ⟶

Django’da uygulama bazlı önbelleklemeyi “context processor”lar bağlamında inceleyelim


Çok sofistike bir başlık oldu, ama basit bir konuya (ya da konunun basit kısmına) değineceğiz: ön belleğe alma. Biliyorsunuz ki veri tabanı sorgularını ne kadar optimize edersek edelim, bazen istediğimiz hızlara kavuşamıyoruz. Bu durumda hızı arttırmak için iyi çözümlerden biri verinin dinamikliğini azaltma tavizini vermek. Ön belleğe alma çok katmanlı bir yapı ve bulunan bağlama göre ne yaptığınız (neyi nasıl ön belleğe aldığımız) değişir. Ben bu yazıda uygulama bazında, yani tamamen sunucu kısmında yapacağımız ön belleğe alma işlemine değineceğim. Nitekim, bu da tek katmanlı değil, istek (request) bazında ön belleğe alma veya almama durumları da var, ikisine de bakacağız.

Read more ⟶