在 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页面