让我的python程序从在线数据库存储/检索信息的最简单方法是什么?

时间:2014-05-31 03:40:57

标签: python mysql-python

我的python程序是一个实验室化学程序,它将安装在几个不同实验室的许多不同计算机上。所有这些程序都需要能够将信息存储到同一个在线数据库,并从同一个在线数据库中检索信息。什么是我最简单的方法来实现这一目标?

我考虑过使用MySQLdb,但问题是:

  • 我在CLIENT上运行python而不是SERVER,我必须编辑SERVER上的my.ini文件(我无权访问)以便允许来自CLIENTS的远程连接

这里有一些简单的选择吗?

1 个答案:

答案 0 :(得分:1)

首先,您需要一个允许远程连接的数据库主机,因此,在签订主机合同之前,请检查它们是否可以远程访问数据库。

如果您的主机使用它,您只需要获取它们的信息以连接到数据库服务器(通常是主机地址,端口,数据库名称,用户和密码)。

然后,创建一个python文件(例如database.py)来存储这些信息。

最后,在您的程序中,导入这些信息以创建连接。

通常你会:

"""
database.py: provides information to make a database connection
"""
login_info = {
    "host":"host_adress",
    "user":"user_name",
    "password":"very_secret_password", 
    "database":"database_name",
    "port": 3306
    }

当然,将dict值更改为您使用主机获得的值。

在你的计划中:

"""
main_program.py: a chemical program
"""
from database import login_info
import mysql.connector

conn = mysql.connector.Connect(**login_info)
curs = conn.cursor()

# STORE
curs.execute("""INSERT INTO table_name(row1,row2) VALUES("foo","bar")""")
conn.commit()

# RETRIVE
curs.execute("""SELECT * FROM table_name""")
results = curs.fetchall()
for result in results:
    print(result)

请注意,我正在使用MySQL Connector / Python驱动程序(而不是MySQLdb驱动程序),您可以获得here。 MySQL连接器有一个令人满意的documentation代码示例,可以帮助您。