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