scrypt密碼哈希去年(2021年)十二月,django發(fā)布了4.0版本,他更新了一些新的特性,雖然看起來與之前變化不大,但使用新的django可以避免一些老版本的問題(這些問題可能會是導致你棄坑django的原因),那現(xiàn)在讓我們來聊聊都更新了些什么吧。
兼容性
現(xiàn)在django4.0支持python3.8,3.9,3.10。
Django 4.0 支持 PostgreSQL 10 及更高版本。放棄對 PostgreSQL 9.6 的支持
Django 4.0 正式支持 Oracle 19c。放棄對 Oracle 12.2 和 18c 的支持
django對數(shù)據(jù)庫的兼容性決定了你要更新這個框架需不需要進行數(shù)據(jù)庫遷移,以便估算成本,一般來說遷移數(shù)據(jù)的成本是比較高的。
django支持最新的幾個python版本,也就意味著可以使用這些版本的新語法和新功能(比如3.10的match語句)更好用的異步優(yōu)化和類型檢查。
新特性
Python 標準庫zoneinfo現(xiàn)在是 Django 中的默認時區(qū)實現(xiàn)。
功能唯一約束——?UniqueConstraint()
?的*expressions
位置參數(shù)允許在表達式和數(shù)據(jù)庫函數(shù)上創(chuàng)建功能唯一約束。
scrypt密碼哈希——新的scrypt 密碼散列器比 PBKDF2 更安全,推薦使用。但是,它不是默認設置,因為它需要 OpenSSL 1.1+ 和更多內(nèi)存。
Redis 緩存后端——新的django.core.cache.backends.redis.RedisCache緩存后端為使用 Redis 進行緩存提供了內(nèi)置支持。需要 redis-py 3.0.0 或更高版本。有關更多詳細信息,請參閱Django 中使用 Redis 進行緩存的文檔。
新增QuerySet.contains(obj)方法,用于判定查詢集中是否包含給定的對象;
LoginView增加了next_page屬性;
{% ifequal %}和 {% ifnotequal %} 標簽被刪除;
request.is_ajax()方法被刪除。
小結(jié)
作為一個知名的python web框架,django的更新是比較緩和的,沒有出現(xiàn)比較大型的變動,這讓想要從Django3升級到Django4的開發(fā)者更易于接受。但新框架的出現(xiàn)意味著舊的技術的逐漸過時,所以現(xiàn)在想要學習Django的朋友們,Django4教程和視頻課都已經(jīng)出了,趕緊學起來吧!
Django4教程地址:Django4 中文教程
Django4視頻課連接(點擊圖片跳轉(zhuǎn)):