在 Python Flask 中从数据库中查询数据时获取表名

Posted

技术标签:

【中文标题】在 Python Flask 中从数据库中查询数据时获取表名【英文标题】:Get table name when querying data from database in Python Flask 【发布时间】:2020-02-19 20:32:26 【问题描述】:

我开始拿起 Flask。经过 3 年的 php,我决定了它的时间。 我成功连接到本地服务器和数据库,并且能够从数据库中查询数据并将其输出到屏幕上。然后我决定是时候跳入一个小型 REST API 项目,但我不知道如何获取表名以实现有效的 JSON 输出。这是我的代码:

cur = mysql.connection.cursor()
cur.execute("SELECT * FROM users")
fetchdata = cur.fetchall()
cur.close()
output = json.dumps(fetchdata)
return output

【问题讨论】:

【参考方案1】:

您是否查看了 Python 的官方 MySQL 文档? Here 这是一个很好的示例,可以帮助您连接到数据库并从表中获取信息。

编辑:

使用此代码,您可以获取数据库中的所有表,然后获取您想要的表。


import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb

db= MySQLdb.connect("hostname", "username", "password", "database_name")

cursor= db.cursor()

result = cursor.fetchall()

for i in range(len(result)):
    print(result[i])

【讨论】:

我已经连接到数据库,我可以从中查询数据,它只是没有给我我需要的表数据。它提供内容(用户名、密码、其他信息)但不提供表名,为了形成有效的 json 响应,我需要表名。 你也可以在评论而不是答案中这样做。 哦,我明白你的意思了。【参考方案2】:

当您说表名时,您是指列名吗?如果是这样,您正在寻找cursorclass=MySQLdb.cursors.DictCursor,例如:

import MySQLdb
import MySQLdb.cursors
connection = MySQLdb.connect(host=HOST, port=PORT, user=USER, passwd=PASSWD, db=DB, cursorclass=MySQLdb.cursors.DictCursor, use_unicode=1)

然后在您执行cursor = connection.cursor()cursor.execute(sql)all_rows = cursor.fetchall() 之后,您会得到一个字典,您可以将其 JSON 化:

for row in all_rows:
    row['column_selected'] # exists :)
...
json.dumps(all_rows) # should be much better now

希望我正确理解了您的问题!

【讨论】:

以上是关于在 Python Flask 中从数据库中查询数据时获取表名的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中从 JSON 字符串中提取数据时出错(使用 Redshift)

python的flask框架查询数据库,将数据库的某几列显示到web页面

python的flask框架查询数据库,将数据库的某几列显示到web页面

如何从我的 Flask python 应用程序查询数据库?

python查询数据库返回数据

如何在python flask app中将数据从postgresql渲染到csv?