Django 6 sürümü
(docs.djangoproject.com)- Django web çatısı 6.0 sürümü yayınlandı ve Python 3.12+ desteğiyle güvenlik, şablon ve asenkron özelliklerinde ciddi iyileştirmeler getirildi
- Content Security Policy (CSP) varsayılan olarak yerleşik olduğu için XSS gibi içerik enjeksiyonu saldırılarına karşı koruma politikaları ayarlanabiliyor
- Template Partials ile şablon içinde yeniden kullanılabilir bölümler tanımlanabildiğinden kod modülerliği iyileşiyor
- Background Tasks çatısı eklendi ve istek-yanıt döngüsünün dışında asenkron görevlerin çalıştırılması desteklendi
- Python'un modern e-posta API'si benimsendi, MariaDB 10.5 desteği sonlandırıldı,
DEFAULT_AUTO_FIELDvarsayılanı değiştirildi ve bu sayede uyumluluk ayarları ve modernizasyon gerçekleştirildi
Python uyumluluğu
- Django 6.0, Python 3.12, 3.13, 3.14'ü destekler ve her serinin yalnızca en son yayımlanan sürümünü resmi olarak destekler
- Django 5.2.x, Python 3.10 ve 3.11 destekleyen son sürümdür
- Django 6.0 sonrasında üçüncü taraf uygulamaların, Django 5.2'den eski sürümleri desteklememesi önerilir
Temel yeni özellikler
Content Security Policy (CSP) desteği
- Django'da CSP standardı yerleşik olarak gelir ve XSS gibi içerik enjeksiyonu saldırılarına karşı koruma güçlendirilir
ContentSecurityPolicyMiddleware,csp()bağlam işleyicisi veSECURE_CSPayarı ile politika tanımlanabilir- Python sözlüğü tabanlı yapılandırma ile açık ve güvenli bir politika oluşturma desteği sağlanır
SECURE_CSP_REPORT_ONLYile izleme modu ayarlanabilir- Görünüm düzeyinde politikayı geçersiz kılmak veya devre dışı bırakmak için bir dekoratör sunulur
Template Partials
- Şablon parçaları (fragment) tanımlayıp yeniden kullanmak için
partialdefvepartialetiketleri eklendi template_name#partial_namesözdizimiyleget_template(),render(),{% include %}içinde doğrudan referans vermek mümkün- Mevcut üçüncü taraf
django-template-partialspaketi kullanıcıları için bir geçiş kılavuzu sağlanıyor
Background Tasks çatısı
- Django'ya asenkron görev çalıştırmaya yönelik yerleşik bir çatı eklendi
- E-posta gönderimi, veri işleme gibi işlemler HTTP istek-yanıt döngüsünün dışında yapılabilir
- Görevler
@taskdekoratörüyle tanımlanır,enqueue()ile kuyruğa eklenir
- Arka uç,
TASKSayarıyla belirlenir; geliştirme ve test için iki adet varsayılan arka uç dahil edilir - Django yalnızca görev oluşturma ve kuyruklama işlerini üstlenir; çalıştırma dışarıdaki bir worker süreci tarafından yapılır
Python modern e-posta API'sinin benimsenmesi
- Django'nun e-posta işleme mantığı Python 3.6 sonrası modern e-posta API'sine (
email.message.EmailMessage) geçmiştir - Eski
SafeMIMETextveSafeMIMEMultipartsınıfları artık kullanılmıyor EmailMessage.message()dönüş tipi Python'ınEmailMessageörneği olarak değiştirildi
Ayrıntılı geliştirmeler
Admin
- Font Awesome Free 6.7.2 simge seti uygulandı
AdminSite.password_change_formözelliği ile yönetici şifre değiştirme formu özelleştirilebiliyormessages.DEBUGvemessages.INFOiçin ayrı simgeler ve CSS stilleri eklendi
Kimlik doğrulama
- PBKDF2 hash yineleme sayısı 1.000.000 → 1.200.000 seviyesine çıkarıldı
GIS
GEOSGeometry.hasmözelliğiyle M boyutunun mevcut olup olmadığı kontrol edilebiliyorRotateişleviyle belirli açıyla döndürme desteği eklendiBaseGeometryWidget.base_layerözelliğiyle harita tile sağlayıcısı özelleştirilebiliyor- MariaDB 12.0.1 ve üzeri sürümlerde
coveredby,isvalid,GeoHash,IsValidgibi işlevler destekleniyor - Widget render edilirken satır içi JavaScript kaldırıldı, özelleştirme için şablonun güncellenmesi gerekiyor
PostgreSQL
- Lexeme ifadeleri eklenerek tam metin araması sorgu kontrolü güçlendirildi
CreateExtensiongibi eklenti işlemlerinehintsparametresi eklendidjango.contrib.postgresalanları, dizinleri ve kısıtlamaları için sistem kontrolü eklendi
Staticfiles
ManifestStaticFilesStorage, gereksiz diff'i azaltmak için yol sıralama tutarlılığı sağlarcollectstatickomutu varsayılan olarak yalnızca özeti yazdırır; ayrıntılı bilgi--verbosity 2ve üzeri seviyede görünür
Diğer
- Haitian Creole dili desteği eklendi
startproject,startappkomutları var olmayan dizinleri otomatik oluşturuyorshellkomutundadjango.conf.settingsgibi temel yardımcılar otomatik içe aktarılır- Migasyonlarda
zoneinfo.ZoneInfoserileştirmesi destekleniyor StringAgg,AnyValuegibi yeni toplama işlevleri eklendiAsyncPaginator,AsyncPageile asenkron sayfalama desteği geldi- ASGI'de HTTP/2 çoklu Cookie başlığı desteği
- Şablonda
forloop.lengthdeğişkeni eklendi,querystringetiketi geliştirildi DiscoverRunner,forkservertabanlı paralel testleri destekliyor
Geriye dönük uyumsuzluklar
Veritabanı arka ucu API'si
BaseDatabaseSchemaEditorile PostgreSQL arka ucu, sütun silinirkenCASCADEkullanımını bırakıyorreturn_insert_columns()→returning_columns()gibi yöntem adı değişiklikleriUPDATE … RETURNINGdesteğindeDatabaseFeatures.can_return_rows_from_update=Trueayarı mümkün oldu
Kullanımdan kaldırma
- MariaDB 10.5 desteği sonlandı (en az 10.6 gerekli)
- Python 3.12 altı desteği kaldırıldı
- Temel kütüphane minimum sürümleri:
aiosmtpd 1.4.5,bcrypt 4.1.1,Pillow 10.1.0,psycopg 3.1.12vb.
- Temel kütüphane minimum sürümleri:
E-posta
mixed_subtype,alternative_subtype,encodingözellikleri kaldırıldı- İçsel uygulama değişikliği nedeniyle özel EmailMessage alt sınıflarının yeniden kontrol edilmesi gerekiyor
DEFAULT_AUTO_FIELD varsayılanının değiştirilmesi
- Varsayılan değer
AutoField→BigAutoFieldolarak değişti - Django 3.2'den sonra uyarı (
models.W042) işlemeyen projeler, ayar eklemelidir
ORM ifadeleri
as_sql()metodunun dönüş parametresi tuple formatında olmalı
Diğer
- JSON serileştirme her zaman satır sonu ekliyor
asgirefminimum sürümü 3.9.1 olarak yükseltildi
Yakında kaldırılacak özellikler
django.core.mail API'si
get_connection(),send_mail()gibi yöntemlerde isteğe bağlı argümanların yalnızca anahtar kelime argümanı olarak verilmesi gerekiyorEmailMessage,EmailMultiAlternativesoluşturulurken ilk 4 argüman dışındaki tüm argümanlar yalnızca anahtar kelime argümanı olabilir
Diğer
BaseDatabaseCreation.create_test_db(serialize)kaldırılıyor, yerineserialize_db_to_string()kullanılmalı- PostgreSQL'e özel
StringAgg,OrderableAggMixinkaldırılıyor urlize,urlizetruncvarsayılan protokolünün Django 7.0'da HTTPS'e çevrileceği planlanıyorADMINS,MANAGERSayarları (ad, e-posta) çiftliği yerine e-posta dizesi listesi ile belirtilmeliSafeMIMEText,SafeMIMEMultipart,BadHeaderErrorgibi e-posta ile ilgili sınıflar kaldırılıyor
Kaldırılan özellikler
BaseConstraintkonumsal argüman desteği kaldırıldıDjangoDivFormRenderer,Jinja2DivFormRenderersilindicx_Oracleveritabanı sürücüsü desteği kaldırıldıforms.URLFieldvarsayılan şema değeri"http"→"https"olarak değiştiModel.save()veModel.asave()konumsal argüman desteği kaldırıldıModelAdmin.log_deletion(),LogEntryManager.log_action()kaldırıldıdjango.utils.itercompatmodülü kaldırıldıGeoIP2.coords(),GeoIP2.open()yöntemleri kaldırıldıForeignObject.get_joining_columns()ve ilişkili yöntemler kaldırıldı
Django 6.0, güvenlik iyileştirmeleri, asenkron işleme yetenekleri ve modern e-posta API'si sayesinde çerçevenin güvenilirliğini ve ölçeklenebilirliğini artırırken Python 3.12+ ortamına geçişi netleştiriyor.
Henüz yorum yok.