连接到python中的数据库URL,其中url用于jdbc

时间:2011-12-05 04:06:52

标签: python mysql jdbc

我正在尝试编写一个将连接到数据库的Python脚本。 数据库的主机URL以jdbc格式提供给我:

URL = jdbc:mysql://www.myurl.com:3306/

我无法弄清楚如何将该网址翻译成pythonese。

任何帮助将不胜感激。感谢

import MySQLdb

conn = MySQLdb.connect(host="????",user="web3u4",passwd="password",db="web3db4")

cursor = conn.cursor ()
cursor.execute ("SELECT VERSION()")
row = cursor.fetchone ()
print "server version:", row[0]
cursor.close ()

# disconnect from server
db.close()

2 个答案:

答案 0 :(得分:1)

您应该使用urlparse.urlparse来解析jdbc字符串。

from urlparse import urlparse
jdbc = "jdbc:mysql://www.myurl.com:3306"
result=  urlparse(jdbc)


MySQLdb.connect(host=result.host,
                user=result.username,
                passwd=result.password,
                db="web3db4")

不确定你如何计划传递数据库..但如果你添加它我也可以帮助你。

答案 1 :(得分:0)

如何通过re模块解析JDBC字符串?例如:

>>> import re
>>> jdbc_str = 'jdbc:mysql://repos.insttech.washington.edu:3306/johndoe?user=johndoe&password=jddb'
>>> jdbc_pattern = 'mysql://(.*?):(\d*)/'
>>> (host, port) = re.compile(jdbc_pattern).findall(jdbc_str)[0]
>>> print host
repos.insttech.washington.edu
>>> print port
3306

连接字符串是从一个样本[年龄复制的,我不知道userpassword字段是否总是在连接字符串中,所以我没有把它们放在模式中

此外,还有一个名为JayDeBeApi的模块可用于连接JDBC服务器,你试过吗?