您好,登錄后才能下訂單哦!
在正文開始之前,我們先來聊聊Python比較流行的Web重量級框架-Django,它的功能非常強大,集合了很多Web開發項目中常用的功能模塊,而且應用了組件式開發思想,所以使用起來非常方便,大大減少了代碼量,很好的體現了“優雅”的代碼,并且它的各個模塊非常獨立,松耦合式排布,這對程序員來說是非常友好的。說完了BI層,Django當然在Data層也支持非常多的數據庫連接,比如Oracle,MySql,MongoDB,sqllite等。好,Django我們就先介紹這些最基本特點,要詳細了解并使用它,還是要看官方文檔,這裡才是最全的教程:Django開發文檔。
回到正題,我們現在要搭建以Oracle數據庫為基礎的一套Django框架,作者是以Python3.5為基礎配套的文件,3.5版本以下沒嘗試,平臺是windows 64bit,則我們需要以下素材,都一一列舉給大家:
1.Python3.5環境,在官方下載好自己需要的壓縮包以后解壓直接安裝,一般情況基本都是“下一步”操作即可,完成以后,打開cmd命令窗口,輸入“python --verson”,按“Enter”,如果順利安裝就可以看到如圖一樣的版本號:
2.Django2.1.14,同樣的操作,現在官網下載好適合自己平臺的壓縮包,將解壓后的整個文件夾(Django-2.1.14)復制到Python的安裝目錄的Python35目錄下,和python.exe同級,復制完成以后,進入復制完的Django-2.1.14目錄,復制其路徑,打開cmd命令窗口,用“cd”命令切換到此目錄下,如果切換不成功,則要切換盤,直接輸入盤名加冒號,比如D盤的話,就輸入“D:”,按“Enter”就可以切換成功,然后數據“python setup.py install”命令,“Enter”,稍等片刻,就會安裝成功,安裝完以后,在命令提示符窗口里輸入“python”命令,然后輸入“import django”,“django.get_version()”,按"Enter",如果安裝成功則會出現版本號,如圖:
3.cx_Oracle5.3,如果找不到相匹配的版本,也可以在Oracle官網下載,實在找不到還可以在百度上指定版本下載,下載解壓后是叫cx_Oracle-5.3-11g.win-amd64-py3.5-2.exe的文件,直接執行,該程序可以自動定位到Python的安裝目錄,同理,一般情況,都是“下一步”操作,完成了此步驟還不算完,因為python也是需要oci文件來連接oracle數據庫,所以還需要將64位Oracle_client根目錄下的oci.dll文件,oraocci11.dll文件,oraociei11.dll文件復制到Python的安裝目錄Python35\Lib\site-packages下面,這些文件的版本一定要和你的DataBase的版本還有平臺的系統相搭配,放好以后我們就來準備測試。
以上所有步驟都完成以后,我們就可以測試是否可以連接到數據庫,打開cmd命令窗口,輸入“python”,然后輸入以下代碼: 鄭州人流多少錢 http://mobile.zyyyzz.com/
“import cx_Oracle
conn = cx_Oracle.connect(‘用戶名/密碼@數據庫服務器IP:端口/數據庫實例名稱’)
curs=conn.cursor()
sql=‘SELECT * FROM …’
rr=curs.execute (sql)
row=curs.fetchone()
print(row[0])
curs.close()
conn.close()”,如果所有的步驟都安裝無誤沒有問題則會查詢出你sql語句查詢內容,如圖所示:
至此,如果你都安裝成功,恭喜你,作者也是踩了無數的坑才搭建成功,所以我總結一下特別要注意的的點,都是一些網上的前輩們血淋淋的教訓:
a.Python3.5支持的Django框架版本都是1.11以上,最好是2.0版本以上
b.Python3和Python2還是有很大區別,且不向下兼容
c.Django2.0版本及以上只支持12c數據庫,當然你可以連接成功,但是在創建各個“應用”必須的表的時候,使用migrate命令就會報錯,塬因是12c和11g在sql寫法上有區別
d.cx_Oracle版本不宜過高,高了以后就會出現其他包配置文件不與其相匹配問題
總結起來就是要達到,平臺系統,數據庫,Django,cx_Oracle,Python版本相搭配,滿足各自兼容的版本,至此,我們的本節內容就分享完了,也是給自己做個筆記,以防后面忘記又去踩坑。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。