django1.8升級django2.0之后的注意事項


1, print

Python3中,print從語句變為函數,所以所有的print語句需要改成print()

2,on_delete

在django 2中,models中on_delete=models.XXX不再是默認選項,需要顯性指定

3, reverse

在新版本django中,這些包不再歸於core,而是屬於django.urls包,需要更改import路徑

4, MIDDLEWARE

在新版本django中,中間件的key值由MIDDLEWARE_CLASSES變更為MIDDLEWARE

5, SessionAuthenticationMiddleware

在新版本django中SessionAuthenticationMiddleware這個中間件不需要了。

6, render_to_response

新版本django中render_to_response不建設使用,改為使用render函數。

7, 從__unicode__到__str__

新版本python后,django的models定義需要從__unicode__變更到__str_

8,dict的'has_key'方法棄用

新版python中字典的has_key方法取消,建議用”str” in dict判斷

9, Direct assignment to the forward side of a many-to-many set is prohibited

新版django中,orm多對多外健不再用=等賦值,改為set方法

new_list = [obj1, obj2, obj3]

e.related_set = new_list ===》 e.related_set.set([obj1, obj2, obj3])

10, Only byte strings can be passed to C code

在使用PyCryptodome作AES加密解密時,注意python3里decode和encode的使用

11,html輸出時,byte如何轉換成unicode?(網頁輸出是b’’)

str(b'','utf8')可以吧BYTES轉換成unicode;bytes('','utf8')反向操作

12, orm migrate

在django升級之后,makemigration重作,migrate可能需要手工增加on_delete=models.XXX

13,python中virtualenv如何具有通用性?

如果安裝好新版python3解釋之后,通過更改active文件中的路徑,可以實現拷貝目錄通用.

 

出處:

http://blog.csdn.net/qq_36510261/article/details/78933946

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM