搭建PythonWeb框架Django+cx_Oracle隨記

ckxllf發表於2019-12-11

  在正文開始之前,我們先來聊聊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”,如果順利安裝就可以看到如圖一樣的版本號:

  

python版本

  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",如果安裝成功則會出現版本號,如圖:

  

Django版本

  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”,然後輸入以下程式碼: 鄭州人流多少錢

  “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語句查詢內容,如圖所示:

  

cx_Oracle安裝測試

  至此,如果你都安裝成功,恭喜你,作者也是踩了無數的坑才搭建成功,所以我總結一下特別要注意的的點,都是一些網上的前輩們血淋淋的教訓:

  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版本相搭配,滿足各自相容的版本,至此,我們的本節內容就分享完了,也是給自己做個筆記,以防後面忘記又去踩坑。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2668058/,如需轉載,請註明出處,否則將追究法律責任。

相關文章