5 Django İpucu
Başlangıç seviyesindeki anlatımlarda çok sık karşılaşamayacağınız, ancak, Django ile uygulama geliştirirken işinize yarayacak 5 ipucunu sizlerle paylaşmak istedim.
Veritabanına Başlangıç Verisi Yüklemek
Geliştirme aşamasında sık sık veritabanını baştan başlatıyorsanız, veya uygulamanızın çalışması için, kurulumdan sonra bazı verilerin veritabanına yazılması gerekiyorsa, bu ipucu sizin için. Uygulamanızın içinde açacağınız "fixtures" dizininin içerisinde, initial_data.[xml, json veya yaml] isimli belgede, syncdb komutuyla birlikte veritabanına yazılacak verileri belirleyebilirsiniz. initial_data.json örneği aşağıda.
Admin panelinde, sadece okunabilen alanlar
Eğer modelinizdeki bazı alanların admin panelinde görünmesini istiyor, ancak, o alanların düzenlenebilir olmasını istemiyorsanız, bunu readonly_fields ile belirtebilirsiniz.
|
class PostAdmin(admin.ModelAdmin):
|
|
readonly_fields = ("slug","last_mod","pub_date")
|
|
admin.site.register(Post,PostAdmin)
|
Admin panelinde göstermeden alan doldurmak
Modelinize ait bazı alanları, admin panelinde göstermeden, programatik olarak doldurabilirsiniz. Admin paneli, modelleri kaydetmek için, ModelAdmin sınıfının, save_model sınıfını kullanıyor. Bu metodun üstüne yazabilirsiniz.
Gzip sıkıştırması
Görünümlerinize ekleyeceğiniz bir dekoratör ile görünümün tarayıcıya gönderilmeden önce gzip formatında sıkıştırılmasını sağlayabilirsiniz.
|
from django.views.decorators.gzip import gzip_page
|
|
from django.shortcuts import render_to_response
|
|
@gzip_page
|
|
def homepage(request):
|
|
return render_to_response("blog/index.html")
|
Sayfalarınızı Önbelleğe Alın
Django, birçok farklı önbellek yöntemini desktekliyor, bunlardan kullanması en kolay olanı muhtemelen bilgisayarın belleğinde önbellek oluşturmak. Aşağıdaki ayarı settings modülüne ekleyerek, django'nun bilgisayar belleğinde bir önbellek oluşturmasını sağlayabilirsiniz.
Önbellek backend'ini (tr'de tam bir karşılığı yok galiba, sunucu uygulama diye çevirmişler) ve belirtip ayarlarını yaptıktan sonra, tüm sitede önbelleklemeyi aktifleştirmek için gerekli middleware (ara yazılım?) sınıflarını ve birkaç diğer ayarı da ayarlamanız gerekiyor.
UpdateCacheMiddleware
sınıfı her zaman ilk, FetchFromCacheMiddleware
her
zaman son sırada olmalı, bunun nedeni biraz gereksiz detay olur,
Django belgeri bu konuya değinmiş.
Tüm sitede değil de sadece bazı sayfalarda önbellekleme isteyenler de cache decorator kullanarak önbellekleme işlemini yapabilir. Dekoratöre verilen argüman, bu önbelleğin ne kadar süre boyunca aktif kalacağını ayarlıyor.
Son olarak şunu belirtmek istiyorum ki, buradaki ipuçlarının Django'ya yeni başlayanlara yönelik olmasını hedefledim. Bu nedenle, örnekleri en basit şeklinde vermeye çalıştım. Bu sebeple, bu yöntemler son kullanım için uygun olmayabilir.