使用pymysql

时间:2018-04-11 08:44:02

标签: python flask pymysql

我是Python的新手,我正在使用Flask构建一个简单的CRUD应用。以下是我的表现:

from flask import Flask,request
import pymysql.cursors

connection = pymysql.connect(
host='localhost',
db='mydb',
user='root',
password='password',
cursorclass='pymysql.cursors.DictCursor
)

@app.route('/login',methods=['POST'])
def login():
    cursor = connection.cursor(pymysql.cursors.DictCursor)
    cursor.execute("SELECT id,hash,displayName,attempt,status FROM users WHERE id=%s", (request.form['username']))
    user = cursor.fetchone()
    pprint(user)

但是这段代码会输出类似这样的东西:

{u'displayName': 'John Smith',
 u'hash': 'somehash.asdf!@@#$',
 u'id': 'developer',
 u'attempt': 0,
 u'status': 1
}

问题是,我似乎无法使用标准user.hash语法获取这些属性。难道我做错了什么?我需要:

  • 将其转换为类似JSON的结构
  • 获取此表单中显示的user的属性

1 个答案:

答案 0 :(得分:0)

使用pymysql.cursors.DictCursor游标时,获取的数据将作为dictionary返回,因此您可以使用所有常见的dict遍历/访问/修改方法。

这意味着您可以访问返回的哈希user["hash"]

对于JSON,Python附带了一个内置的json模块,可以轻松地将检索到的dict转换为JSON字符串,因此在您的情况下,获取JSON表示返回user字典使用:

import json

json_string = json.dumps(user)
print(json_string)  # or do whatever you need with it