python - 如何在 Python 数组中列出 MySQL 数据库

标签 python mysql database user-interface pyqt4

我正在开发一款可以在 MySQL 数据库中存储客户和我们为他们所做的工作的软件,但是为了让 UI 以我想要的方式工作,我需要拥有每个数据库或数组中的表供以后引用。例如

MysqlTables = [customers,clients,jobs]
MysqlTables[0] = [joshua,alex,james]
MysqlTables[0][0] = ["computer issue"]

这样我就可以在前端 UI 中引用和显示所有信息 任何其他使用树小部件在 PyQt4 中显示视觉导航的解决方案将不胜感激

我对将 MySQL 与 python 结合使用仍然很陌生,并且在理解所有内容时遇到了一些困难,我找到了这个但我不明白

How do I list all tables in all databases in SQL Server in a single result set?

从我可以描述的情况来看,我可能想做类似的事情,但我不知道如何实现它,而且它不会包含客户的工作信息。

最佳答案

我为我做过的一个项目写了一些非常相似的东西,我基本上在 GUI 中有一个数据库界面,我允许用户编辑和添加条目到数据库,而无需进入 MySql Workbench。

您将需要两个函数来与数据库交互,一个用于检索条目,一个用于执行更改。

这段代码将使用 SqlAlchemy 从数据库中检索信息。

def get_info():
    sql = text('SELECT id, '
                   'serial_number, '
                   'weight_name, '
                   'units, '
                   'nominal, '
                   'customer_name, '
                   'density, '
                   'density_uncert , '
                   'volumetric_exp, '
                   'comment '
                   'FROM weights_external '
                   'ORDER BY id ')

    return self.engine.execute(sql).fetchall()

这从名为“weights_external”的表中选择 ID、序列号、单位等,并按 ID 排序。 self.engine.execute(sql).fetchall() 返回一个生成器(我想,它可能是一个列表,但我不记得了,对不起!)你可以循环通过并得到所有的结果。在此示例中,我从该表中获取 10 列。如果表有 100 行,那么该函数将返回一个长度为 100 的列表,并且该列表的每个元素都是一个长度为 10 的列表,每个元素都包含来自一列的信息。

我将这个长度为 100 的列表存储在一个变量中,并使用该变量为 GUI 填充 QTableWidget。

我有一个单独的按钮来调出一个子窗口,允许用户添加一行。此代码与 get_info() 非常相似,只是您现在要更新或插入到表中(您可以在 SqlAlchemy 或 MySql 文档中查找)。基本上,您会得到与此类似的内容:

def push_data(self, data):
    table = self.weights_external.insert()
    self.engine.execute(table.values(id=data['id'],
                                     serial_number=data['serial_num'],
                                     ...
                                     comment=data['comment']))

为了时间和空间,我省略了中间的内容,但是这几段代码应该允许您从数据库中检索数据,将其放入 QTableWidget 或另一个 QObject 中,并允许用户更改它按下一个按钮的数据。如果您有任何问题,请发表评论!

关于python - 如何在 Python 数组中列出 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38187338/

相关文章:

python - Scrapy 蜘蛛内存泄漏

php - 使用 cron 作业每月通过 MySQL SELECT 查询更改 PHP 变量

mysql - 无法找出在 Rails 5 中使用 has_many_through 关系显示连接数据的最佳方式

mysql - 社交应用程序的数据库设计和优化注意事项

c# - 您使用或建议使用什么 DAL 策略?

python - Python 中的华氏度转换器,使用 try/except 命令排除字母

python - 更改副本,但更改父级。为什么?

python - 将 numpy 数组每行移动一个递增的值

mysql - 检测更新查询是否来自触发器

java - 如何传递 NULL 数据类型?