Güncelleme :
Gareth Rees, bu durumda 1 ve 3'ün geçerli olmadığı konusunda haklıydı. 2. ve 4. noktaların hala geçerli olduğunu düşünmeme rağmen, bu nedenle tezleri burada bırakacağım.
( request.POSTHem Pyramid (Pylon) hem de Django'nun nesnesinin bir tür olduğunu fark ettim MultiDict. Bu yüzden belki de request.POSTdeğişmez yapmaktan daha yaygın bir uygulamadır .)
Django adamları adına konuşamam, bana öyle geliyor ki, aşağıdaki nedenlerden bazıları:
Performans . immutable nesneler, önemli optimizasyonlara izin verdiklerinden, değiştirilebilir olanlara göre "daha hızlıdır". Bir nesnenin değişmez olması, yaratılış zamanında ona yer ayırabileceğimiz ve alan gereksinimlerinin değişmediği anlamına gelir. Aynı zamanda kopya verimliliği ve karşılaştırma verimliliği gibi şeylere de sahiptir.
Düzenleme :QueryDictGareth Rees'in işaretettiğigibidurum böyle değil.
- Bu durumda
request.POST, sunucu tarafında hiçbir faaliyetin talebin verilerini değiştirmesi gerekmiyor gibi görünüyor . Ve bu nedenle değişmez nesneler daha uygundur, önemli performans avantajlarına sahip olduklarından bahsetmeye bile gerek yok.
Değişken olmayan objeler olarak kullanılabilir dictAnahtarlar, herhalde Django .. çok yararlı bir yerde olabilir
Edit : Benim hatam, değişmez doğrudan anlamına gelmez hashable ; bununla birlikte, hashable nesneler de tipik olarak değişmezdir .
- Etrafta dolaşırken
request.POST(özellikle üçüncü taraf eklentilere ve dışarıya), kullanıcıdan gelen bu istek nesnesinin değişmeden kalmasını bekleyebilirsiniz.
Bir şekilde bu nedenler aynı zamanda "değişmez mi, değişmez mi?" Sorusuna genel yanıtlardır. soru. Eminim, Django durumunda yukarıdakinden çok daha fazla tasarım düşüncesi vardır.
request.POSTgerçekte olduğundan daha fazla veriyle gönderilen gösterimi oluşturabilirsiniz .