Python資料庫及Apache模組整合筆記

來源:互聯網
上載者:User

一、DB2(1)首先下載驅動:(PyDB2)
http://sourceforge.net/projects/pydb2/

(2)安裝:
執行那個exe安裝程式,如PyDB2-1.1.1-1.win32-py2.5.exe就可以了。
如果是linux,執行
python setup.py build
python setup.py install

(3)測試
import DB2

conn = DB2.connect(dsn='gzdmt', uid='gzcrm', pwd='1jcsxdl')
curs = conn.cursor()
sql='select * from dim_pub_city'
rr=curs.execute(sql)
row=curs.fetchone()
while row:
    (city_id,city_name)=(row[0],row[1])
    row=curs.fetchone()
    print city_id,city_name
curs.close()

注:很奇怪PyDB2沒有提供conn.close()的方法,也不知道他是怎麼實現串連的關閉的。

(4)其他
linux環境可能會出現python libdb2.so.1 找不到的情況
解決方案:
#vi /etc/ld.conf
/usr/kerberos/lib
/usr/X11R6/lib
/usr/lib/qt-3.1/lib
/usr/lib/sane
/usr/local/mysql/lib/mysql
/opt/IBM/db2/V8.1/lib/

#ldconfig

 

二、Oracle

(1)首先下載驅動:(cx_Oracle)
http://www.python.net/crew/atuining/cx_Oracle/

(2)安裝:
首先配置oracle_home環境變數
執行那個exe安裝程式,如cx_Oracle-4.3.1-win32-10g-py25.exe就可以了,它會copy一個cx_Oracle.pyd到Lib/site-packages目錄下。
如果是linux,執行
python setup.py build
python setup.py install

(3)測試
import cx_Oracle

"""conn = cx_Oracle.connect( "aiomni", "aiomni_123","kpi_36")"""
conn=cx_Oracle.connect ('aiomni/aiomni_123@kpi_36')
curs = conn.cursor()
sql='select * from dim_pub_city'
rr=curs.execute(sql)
row=curs.fetchone()
while row:
    (city_id,city_name)=(row[0],row[1])
    row=curs.fetchone()
    print city_id,city_name
curs.close()
conn.close()

(4)在網上有時會說在window平台上可能會遇到問題,我的eclipse+Pydev環境並沒有遇到,現列出如下,遇到問題後可能以後會有協助。

a、import cx_Oracle 時報告找不到OCI.DLL:
到裝了Oracle的機器上找一個,然後copy到Libsite-packages目錄下就可以了。

b、cx_Oracle.connect 時報告RuntimeError: Unable to acquire Oracle environment handle:
這個比較麻煩,按以下步驟來解決:(可能不需要所有的步驟,我沒有確認,不過把以下步驟都執行了,確實問題就解決了)
首先,確認你是在控制台下邊來執行這個python指令碼的。而不是某些ide,例如:PyDev(它們似乎無法載入os的環境變數)。
其實,在本機安裝Oracle(只安用戶端工具就可以了)。
最後,添加以下環境變數:(我給出我的,換成你自己的路徑就可以了)
ORACLE_HOME=D:OracleOra81
PATH=D:OracleOra81bin;

 

三、MySQL

(1)首先下載驅動:(MySQLdb)
http://mysql-python.sourceforge.net/

(2)安裝:
執行那個exe安裝程式,如MySQL-python-1.2.2.win32-py2.5.exe就可以了。
如果是linux,執行
python setup.py build
python setup.py install

(3)測試
import MySQLdb

conn = MySQLdb.connect(host='localhost',user='root',passwd='asiainfo',db='test')
curs = conn.cursor()
sql='select * from orders'
rr=curs.execute(sql)
row=curs.fetchone()
while row:
    (id,order_number)=(row[0],row[1])
    row=curs.fetchone()
    print id,order_number
curs.close()
conn.close()

四、與Apache整合

(1)下載
Apache:
http://httpd.apache.org/download.cgi

Mod_python_apache:
http://apache.mirror.phpchina.com/httpd/modpython/win/3.3.1/

(2)安裝
點擊mod_python-3.3.1.win32-py2.5-Apache2.2.exe安裝即可,注意最後一步要選擇apache的安裝目錄

(3)編輯apache的httpd.conf檔案,最後加入如下幾行

LoadModule python_module modules/mod_python.so
AddHandler mod_python .py
PythonHandler mod_python.psp
PythonDebug On

(4)重啟動apache,在C:/Apache2.2/htdocs目錄下編輯測試檔案

test.py

<%
for i in range(5):
 j = 2**i
 # Loop block begins
%>
<%="%d<sup>%d</sup>=%d"%(2, i, j)%>
<%
# This will close the loop block
%>

(5)訪問地址:

http://localhost/test.py

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.