django 2.0更新的10條注意事項總結(jié)
前言
備受期待的django 2.0已經(jīng)發(fā)布了,最大的一個變化就是不再支持python2.x版本了,這也為我們還在保守使用的2.x的同學們敲響了警鐘,趕緊學習python3.x吧,雖然大同小異,但是python3.x還是提供了很多更高級的用法。
Python兼容性
Django 2.0支持Python3.4、3.5和3.6。Django官方強烈推薦每個系列的最新版本。
最重要的是Django 2.0不再支持Python2!
Django 1.11.x是支持Python2.7的最后版本。
django2.0 棄用的特性
下面這些是我在升級到Django 2.0后遇到的最常見的一些錯誤:
1. url
from django.core.urlresolvers import reverse
變成了
from django.urls import reverse
2. MIDDLEWARE
settings.py文件,MIDDLEWARE_CLASSES更改成了MIDDLEWARE,這個一定要注意。
3. django.shortcuts.render()
django.shortcuts.render_to_response()
方法已經(jīng)被棄用了,現(xiàn)在使用django.shortcuts.render()
方法。
4. User.is_authenticated 和User.is_anonymous
之前的User.is_authenticated()
和User.is_anonymous()
方法更改成了屬性:User.is_authenticated
和User.is_anonymous
。
5. SessionAuthenticationMiddleware
刪除了SessionAuthenticationMiddleware類,不再需要該中間件,在Django 1.10+中已經(jīng)默認開啟了。
6. assignment_tag 改成simple_tag
@register.assignment_tag
改成了@register.simple_tag
。
django2.0 更新的特性
下面的是更新到Django 2.0遇到的一些新特性
7. on_delete=models.CASCADE
為model的ForeignKey和OneToOne的屬性增加on_delete=models.CASCADE
。
8. URL編寫進行了簡化
Django以前的URL規(guī)則是正則規(guī)則,寫起來是有點反人類的,一點都不Pythonic。開發(fā)者們一直在被迫寫類似這樣的匹配表達式:
url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
現(xiàn)在,你可以這樣寫了:
path('articles/<int:year>/', views.year_archive),
9. 聚合操作
數(shù)據(jù)庫查詢的聚合操作annotate中,增加了一個叫Window的操作,和一個叫Frame的條件。
10. 首頁
除此之外,首次啟動的歡迎頁面也重做了,感覺高大上了很多,有沒有 django2-index
總結(jié)
有關(guān)Django 2.0的新功能和更改的完整列表,請參閱官方文檔。
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Python的Flask框架應用調(diào)用Redis隊列數(shù)據(jù)的方法
這里為大家?guī)鞵ython的Flask框架應用調(diào)用Redis隊列數(shù)據(jù)的方法,從而能夠?qū)崿F(xiàn)異步無阻塞從而提高某些實時處理情況下程序的性能,需要的朋友可以參考下2016-06-06Python用 KNN 進行驗證碼識別的實現(xiàn)方法
這篇文章主要介紹了Python用 KNN 進行驗證碼識別的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-02-02Python?pandas找出、刪除重復的數(shù)據(jù)實例
在面試中很可能遇到給定一個含有重復元素的列表,刪除其中重復的元素,下面這篇文章主要給大家介紹了關(guān)于Python?pandas找出、刪除重復數(shù)據(jù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-07-07