Python数据库及Apache模块整合笔记

一、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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值