【问题标题】:Get table name when querying data from database in Python Flask在 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

【问题讨论】:

    标签: python mysql json rest flask


    【解决方案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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-12
      • 1970-01-01
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-07
      相关资源
      最近更新 更多