cevap 1:

Django2.0 yayınlandı. Burada serbest bırakılma bildirimi bulabilirsiniz.

Django 2.0 yayınlandı

Django 2.0'ın bazı büyük ve bazı küçük değişiklikleri var.

İşte burada.

Başlıca Özellikler ve Değişiklikler:

  1. Basitleştirilmiş URL yönlendirme sözdizimi

Yeni django.urls.path () işlevi, daha basit ve daha okunabilir bir URL yönlendirme sözdizimine izin verir. Örneğin, önceki Django sürümlerinden bu örnek:

url (r '^ makaleler / (? P  [0-9] {4}) / $', görünümler.yıl_arşive),

şöyle yazılabilir:

yol ('makaleler /  /', görünümler. yıl_arşivi),

Yeni sözdizimi, URL parametrelerinin tür zorlamasını destekler. Örnekte, görünüm yıl anahtar kelime bağımsız değişkenini dize yerine tam sayı olarak alır. Ayrıca, eşleşecek URL'ler yeniden yazılan örnekte biraz daha az kısıtlanmıştır. Örneğin, 10000 yılı, tamsayıların normal ifadede olduğu gibi tam olarak dört basamakla sınırlandırılmadığı için şimdi eşleşecektir.

Önceki sürümlerden django.conf.urls.url () işlevi artık django.urls.re_path () olarak kullanılabilir. Eski konum, yakın bir kullanımdan kaldırılmadan geriye dönük uyumluluk için kalır. Olddjango.conf.urls.include () işlevi artık django.urls dosyasından alınabilir, böylece URLconfs'nizde fromdjango.urls import include, path, re_path komutunu kullanabilirsiniz.

URL dağıtıcı belgesi, yeni sözdizimini içerecek ve daha fazla ayrıntı sağlayacak şekilde yeniden yazılmıştır.

  1. Mobil uyumlu katkıda bulunun. Admin

Yönetici şimdi yanıt veriyor ve tüm büyük mobil cihazları destekliyor. Daha eski tarayıcılarda değişen düzeylerde zarif bozulma görülebilir.

  1. Pencere ifadeleri

Yeni Window ifadesi, sorgu kümelerine bir OVER yan tümcesi eklenmesine izin verir. İfadede pencere işlevlerini ve toplama işlevlerini kullanabilirsiniz.

Küçük özellikler veya Değişiklikler:

django.contrib.admin

  • Yeni ModelAdmin.autocomplete_fields özniteliği ve ModelAdmin.get_autocomplete_fields () yöntemi, ForeignKey ve ManyToManyField için Select2 arama widget'ının kullanılmasına izin verir.

django.contrib.auth¶

  • PBKDF2 şifre yıkayıcı için varsayılan yineleme sayısı 36.000'den 100.000'e yükseltildi.

django.contrib.gis

  • AsGeoJSON işlevi, GeoHash işlevi, IsValid işlevi, geçersiz arama ve mesafe aramaları için MySQL desteği eklendi. meta verileri meta veri, bilgi ve meta veri öznitelikleri aracılığıyla okunabilir ve düzenlenebilir hale getirin. Rasterler artık bellekteki ikili verilerden oluşturulabilir ve dönüştürülebilir. Yeni GDALBand.color_interp () yöntemi, bandın renk yorumunu döndürür.

django.contrib.postgres

  • ArrayAgg için yeni bağımsız değişken, birleştirilmiş değerlerin farklı olup olmayacağını belirler. Yeni RandomUUID veritabanı işlevi, sürüm 4 UUID değerini döndürür. Yeni CryptoExtension geçiş işlemi.django.contrib.postgres.indexes kullanılarak etkinleştirilebilen PostgreSQL’in pgcryptoextension kullanılmasını gerektirir.Yeni GistIndex sınıfı artık veritabanında GiST dizinleri oluşturulmasına izin verir. Yeni BtreeGistExtensionmigration işlemi, yerleşik olmayan operatör sınıflarına destek eklemek için btree_gist uzantısını yükler. İnspectdb artık JSONField ve çeşitli RangeField'leri introspect edebilir (django.contrib.postgres INSTALLED_APPS içinde olmalıdır).

django.contrib.sitemaps

  • Protokol anahtar sözcüğü bağımsız değişkeni GenericSitemap yapıcısına eklendi.

Önbellek

  • cache.set_many () artık eklenemeyen anahtarların listesini döndürüyor. Yerleşik arka uçlar için başarısız ekler yalnızca memcached'de olabilir.

Dosya Depolama

  • File.open (), bir bağlam yöneticisi olarak kullanılabilir, ör. file.open () ile f: olarak.

Formlar

  • SplitDateTimeWidget veSplitHiddenDateTimeWidget için yeni date_attrs ve time_attrs bağımsız değişkenleri, DateInput ve TimeInput (veya gizli) altwidgets için farklı HTML özniteliklerinin belirtilmesine izin verir.

Genel Görünümler

  • Yeni ContextMixin.extra_context özniteliği, View.as_view () öğesine bağlam eklemeye izin verir.

Yönetim Komutları

  • inspectdb artık MySQL'in imzasız tamsayı sütunlarını PositiveIntegerField veya PositiveSmallIntegerField'e çevirmektedir. Yeni makemessages --add-location seçeneği PO dosyalarındaki yorum formatını kontrol eder. loaddata artık stdin'den okuyabilir. Oracle'da inspectdb, sütun bir kimlik sütunu olarak oluşturulduysa artık AutoField'i içgözleyebilir. MySQL'de dbshell artık istemci tarafı TLS sertifikalarını destekliyor.

Taşıma İşlemleri

  • Yeni squashmigrations - squashed-name seçeneği, squashed migrasyonunun adlandırılmasına izin verir.

Modeller

  • Yeni StrIndex veritabanı işlevi, başka bir dizenin içindeki bir dizenin başlangıç ​​dizinini bulur. Oracle'da, AutoField ve BigAutoField artık kimlik sütunları olarak oluşturulmuştur. QuerySet.iterator () 'in yeni chunk_size parametresi, Python veritabanı istemcisi tarafından getirilen satır sayısını kontrol eder sonuçları veritabanından aktarırken. Sunucu tarafı imleçleri desteklemeyen veritabanları için, Django'nun veritabanı bağdaştırıcısından getirdiği sonuç sayısını denetler.QuerySet.earliest (), QuerySet.latest () ve Meta.get_latest_by artık birkaç alan tarafından sipariş vermeye izin verir. ExtractQuarter işlevi, çeyreği DateField ve DateTimeField öğelerinden ayıklamak ve çeyrek araması yoluyla göstermek için. DateField ve DateTimeField öğelerini çeyreğin ilk gününe kısaltmak için TruncQuarter işlevini ekledi. bir yerel süre alanı (Oracle ve PostgreSQL), Extract artıkDurationField ile çalışır. Seçili tüm tablolar yerine yalnızca belirli tablolardaki satırları kilitlemek için PostgreSQL ve Oracle'da desteklenen QuerySet.select_for_update () öğesine argüman eklendi. Özellikle selectrelated () ile birlikte kullanıldığında whenselect_for_update () kullanıldığında faydalı olabilir. , arka uç bu özelliği destekliyorsa. Django'nun yerleşik arka uçlarından yalnızca Oracle bunu destekler. Yeni connection.execute_wrapper () yöntemi, veritabanı sorgularının yürütülmesi etrafına sarmalayıcılar yüklenmesine olanak tanır. Yerleşik toplamalar için yeni filtre bağımsız değişkeni, aynı alanlar veya Meta.ordering'deki ifadeler için destek eklendi. QuerySet.values_list () adlı yeni adlandırılmış parametre, adlandırılmış tuples olarak sonuçların alınmasına izin verir.Yeni FilteredRelation sınıfı, sorgu kümelerine bir ON yan tümcesi eklenmesine izin verir.

sayfalara numara koyma

  • Geçersiz sayfa numaralarının işlenmesine ilişkin dokümante edilmiş desen sağlamak için Paginator.get_page () eklendi.

İstek ve Cevaplar

  • Runserver Web sunucusu HTTP 1.1'i destekler.

Şablonlar

  • Üçüncü taraf uygulamalarda Engine.get_default () yönteminin kullanışlılığını artırmak için, artık pek çok DjangoTemplates motoru TEMPLATES içinde yapılandırılmamışsa, EnhanperlyConfigured.Custom şablon etiketleri artık yalnızca anahtar kelime argümanlarını kabul edebilir.

Testler

  • LiveServerTestCase'e iş parçacığı desteği eklendi. Oracle için test tablo alanı parametrelerini özelleştirmeye izin veren ayarlar eklendi: DATAFILE_SIZE, DATAFILE_TMP_SIZE, DATAFILE_EXTSIZE ve DATAFILE_TMP_EXTSIZE.

doğrulayıcıları

  • Yeni ProhibitNullCharactersValidator, CharFieldform alanı ve alt sınıflarının girişindeki boş karakteri devre dışı bırakır. Güvenlik açığı tarama araçlarında boş karakter girişi gözlendi. Çoğu veritabanı sessiz karakterleri sessizce atar, ancak psycopg2 2.7+, boş bir karakteri PostgreSQL ile bir karakter / metin alanına kaydetmeye çalışırken bir istisna oluşturur.

Daha fazla bilgi edinmek istiyorsanız bu bağlantıya gidin

Django 2.0 sürüm notları