1. 程式人生 > >Django從1.8升級到2.0注意事項

Django從1.8升級到2.0注意事項

我公司從2015年開發自動化部署平臺,當時選用的開發框架是Django1.8版本。這兩年多來,基於其上,很好的滿足了我們的開發需求。

由於Django的產品週期問題,我們決定將Django從當前開發的1.8版本升級到2.0版本,此新最版本已不再支援python2,所以開發語言也需要相應升級到3.6版本。其間幾個重要的變更技術點節錄如下(以更改過程為主,不區別django還是python變更,且django中的變化也不一樣是2.0中才開始具有的):

 6d23625d8a884ea4bee46a3b31bf1021d53c8d6c

1, print

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

2,on_delete

django 2中,modelson_delete=models.XXX不再是預設選項,需要顯性指定

3, reverse

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

4, MIDDLEWARE

在新版本django,中介軟體的key值由MIDDLEWARE_CLASSES變更為MIDDLEWARE

5, SessionAuthenticationMiddleware

在新版本djangoSessionAuthenticationMiddleware這個中介軟體不需要了。

6, render_to_response

新版本djangorender_to_response不建設使用,改為使用render函式。

7, 從__unicode__到__str__

新版本python後,djangomodels定義需要從__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

在使用PyCryptodomeAES加密解密時,注意python3decodeencode的使用

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檔案中的路徑,可以實現拷貝目錄通用.

相關推薦

Django1.8升級2.0注意事項

我公司從2015年開發自動化部署平臺,當時選用的開發框架是Django1.8版本。這兩年多來,基於其上,很好的滿足了我們的開發需求。 由於Django的產品週期問題,我們決定將Django從當前開發的1.8版本升級到2.0版本,此新最版本已不再支援python2,所以開

記錄Struts2.1.8升級2.3.15.3過程

structs2爆遠端命令執行漏洞,影響版本:Struts 2.0.0 - Struts 2.3.15 ,原來的Struts應用需要升級。 Struts版本從2.1.8升級到2.3.15.3: 直接替換Struts相關jar報錯,需要注意: struts2-*.jar全部由2.1.8 替換為 2.3.15.

Rancher 1.6到2.0:術語及概念變化對比

Rancher2.0 Kubernetes Rancher 2.0 Beta版已正式發布。Rancher 2.0是一個企業級Kubernetes平臺,能夠實現多Kubernetes集群的統一納管,解決生產環境中企業用戶可能面臨的基礎設施不同的困境。此外,Rancher 2.0簡潔直觀的界面風格及操作體

springboot 1.5.2升級2.0.4 mongodb中QueryBuilder中DBObject被棄用,改為Document構造及解決方式

今天封裝mongo工具包,發現QueryBuilder中DBObject被棄用,改為Document構造。為什麼,我們稍微分析一下  Document實現Map,與基本的DBObject相比,可編寫的程式碼更少 DBObject雖然不被推薦,那些從2.x驅動程式系列可能繼續使用DB

圖形化升級單機oracle 11.2.0.1 到 11.2.0.4

1. 講補丁包上傳到 oracle server ,解壓、安裝 [[email protected] ~]#unzip p13390677_112040_Linux-x86-64_1of7.zip -d /tmp && unzip p1339

Solr----1、solr7.2.0+jdk1.8+tomcat8部署解析

近期在專案中要做一個站類搜尋,我自然而然就想到了solr,solr的版本在不斷的更新,功能也越全,所以我決定使用最新版的7.2.0,那麼為什麼非得用solr裡? 1. 什麼是solr Solr 是Apache下的一個頂級開源專案,採用Java開發,它是基於Lucene的

vue專案1.0升級2.0總結

配置檔案的更改 依賴包更新 路由寫法更改 指令更改 鉤子函式更改 通訊方法 廢棄的api 相應依賴包不適合當前框架版本的重構 props的屬性不能在其他地方更改 根例項不能掛載在body或html

jdk1.8降到jdk1.7失敗

版本 java rac 令行 移動 重啟 mda ora bin 1.將JAVA_HOME:的路徑更改為1.7的相關路徑,例如我的:C:\Java\jdk1.7.0_80 2.此時查看版本:Java -version,如果是1.8的版本,就把path路徑下的%JAVA_H

001-pro ant design 升級2.0後變更

span pro ble .com change alert info card extend 一、更新點 1、目錄調整 2、本地代理服務器調整 roadhog→umi 配置方式 在這個config/config.js配置 "proxy": { "

OpenCV各版本差異與演化,1.x到4.0

部落格:blog.shinelee.me | 部落格園 | CSDN 寫在前面 最近因專案需要,得把OpenCV撿起來,登入OpenCV官網,竟然發現release了4.0.0-beata版本,所以藉此機會,查閱資料,瞭解下OpenCV各版本的差異及其演化過程,形成了以下幾點認識: 新版本的產生是

lnmp 1.3升級1.5

想給測試機加上ssl證書才發現測試機上沒有 lnmp ssl add 這個命令,一查版本是比較舊的 1.3 是2年前裝的 升級方法很簡單,就簡單備忘下,所有需要的資訊在官網可查 一條命令完成 wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO ln

Unity 匯出 glTF 2.0 資原始檔

最近不是一直在和 glTF 搏鬥嗎,現在很多引擎都已經支援了 glTF 2.0,特別是在 WebGL 領域,包括 Three.js 等流行的引擎都已經支援了 glTF 2.0 格式。 怎麼得到 glTF 2.0 格式的模型、動畫或者場景呢?目前有了一些工具完成格式轉換,例如 FBX

多多客DOODOOKE 1.x升級2.x指南

contex control 商品 ont 重構 直接 req 訂單 quest 溫馨提示 本教程是1.x升級2.x手動升級指南。由於本次更新涉及到主框架更新,因此本次更新先提供手動升級指南。後續根據情況再進行推送升級。 | 2.x版本引入了npm包管理工具lerna,系統

SpringBoot遇到的一些bug(很多是版本1.5到2.0的區別所致)

解決辦法有的很多種,下面的都是我親測的,有時候發現第二次使用另一種方式也可以解決,所以內容僅供參考 1- jpa解決org.hibernate.lazyinitializationexception無法初始化代理 - 沒有會話 #配置檔案新增懶載入 spring.jpa.properties

Spring Boot 1.5.* 升級 2.1 - 完善中

Spring Boot 原版本 1.5.12.RELEASE 新版本 2.1.0.RELEASE Spring Cloud 原版本 Edgware.SR3 新版本 Finchley.SR2   一、Actuator 部分   1. 原版本中暴露所有端點的配置是 management.secu

1.C#之2.0(在整理當中)

     以前的十八章都是C#1.0所引入的內容,接下來寫C#2.0引入的幾項語言擴充套件,2.0引入的重要的是泛型、匿名方法、迭代器、不完整型別:           泛型:可以讓類、結構、介面、委託和方法通過它們所儲存和操作

from 1.8 to 2.5 – Mehdi Farsi – Medium

The Evolution of Ruby Strings from 1.8 to 2.5IntroductionIn Ruby, a string is represented as an instance of the String class. This class has highly evolved

python的學習筆記案例1--匯率兌換2.0

       最近開始系統學習Python,前面已經寫了一個匯率兌換1.0版本,就是簡單輸入一個金額,得到兌換後的金額。 本次要升級了,可以判斷是人民幣還是美元,然後在轉化對應的金額。程式碼後面附帶解釋,就不在程式碼中解釋太多了。 鮮花少說,繼續學

一站式win10+ubuntu16.04+eclipse pydev+pycharm+tensorflow1.4.1+anaconda3 4.2.0環境搭建

一站式win10+ubuntu16.04+eclipsepydev+pycharm+tensorflow1.4.1+anaconda3 4.2.0環境搭建 之前安裝了tensorflow1.6.0版本感覺不太好用,於是決定回到py3.5+tf1.4.1版本 文章比較長,但