前言
2017年12月2日,Django官方發布了2.0版本,成為多年來的第一次大版本提升,那么2.0對廣大Django使用者有哪些變化和需要注意的地方呢?
一、Python兼容性
Django 2.0支持Python3.4、3.5和3.6。Django官方強烈推薦每個系列的最新版本。
最重要的是Django 2.0不再支持Python2!
Django 1.11.x是支持Python2.7的最后版本。
二、2.0新特性
1.簡化了URL路由語法
django.urls.path()方法的語法更簡單了。
例如以前的:
url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),可以寫作:
path('articles/<int:year>/', views.year_archive),新語法支持強制定義參數類型。例子中只接收整數型年份參數,不再接收字符串類型,同時“10000”年也是合法的(雖然是5位數字),而不像先前正則里只能接收4位數字。
以前版本的django.conf.urls.url()方法變成了django.urls.re_path() ,但為了向后兼容,舊的依然保留,而不是立刻廢棄。django.conf.urls.include()方法現在可以從django.urls導入,也就是你可以使用from django.urls import include, path, re_path。
2.admin后臺對移動端更加友好
Django最受大家歡迎的admin后臺,具有響應式特性,支持主流的移動設備。
3.Window 表達式
新的Window表達式允許為查詢集添加一個OVER從句。
4.小特性
django.contrib.admin后臺
新的ModelAdmin.autocomplete_fields屬性和ModelAdmin.get_autocomplete_fields()方法現在可以在外鍵和多對多字段上使用Select2搜索框。
django.contrib.auth用戶認證
PBKDF2密碼哈希默認的迭代次數從36000增加到100000。
django.contrib.gis地理框架
GDALBand.color_interp()方法返回波段的顏色說明。django.contrib.postgres數據庫
django.contrib.postgres.indexes.GinIndex現在支持fastupdate和gin_pending_list_limit參數;  新的GistIndex類允許在數據庫中創建GiST索引;  inspectdb現在可以內省JSONField和RangeFields。django.contrib.sitemaps站點地圖
Cache緩存
cache.set_many()現在返回一個列表,包含了插入失敗的鍵值;            
新聞熱點
疑難解答