微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何在Python Flask APP中响应光标的列名?

如何解决我如何在Python Flask APP中响应光标的列名?

我正在使用Flask在Python 3上开发API并尝试将数据插入MysqL,但是响应中仅包含值,并且无法在app的Json答案中正确显示。 Python代码

app = Flask(__name__)
app.config['MysqL_HOST'] = 'localhost'
app.config['MysqL_USER'] = 'root'
app.config['MysqL_PASSWORD'] = ''
app.config['MysqL_DB'] = 'didaxis'
MysqL = MysqL(app)

@app.route('/insertAlumno',methods = ['POST'])
def insertAlumno():
    nombre = request.json['nombre']
    apellidoPaterno = request.json['apellidoPaterno']
    apellidoMaterno = request.json['apellidoMaterno']
    fechaNacimiento = request.json['fechaNacimiento']
    direccion = request.json['direccion']
    telefono = request.json['telefono']
    correo = request.json['correo']
    matricula = request.json['matricula']
    curso = request.json['curso']

    dataUser = (nombre,apellidoPaterno,apellidoMaterno,fechaNacimiento,direccion,telefono,correo,matricula,curso)

    conect = MysqL.connection.cursor()
    conect.callproc('insertaralumno',dataUser)
    data = conect.fetchall()
    data=jsonify(data)

    return data

存储过程

DELIMITER //
CREATE PROCEDURE insertaralumno(_nombre VARCHAR(50),_apellidoPaterno VARCHAR(30),_apellidoMaterno VARCHAR(30),_fechaNacimiento DATE,_direccion VARCHAR(100),_telefono VARCHAR(20),_correo VARCHAR(50),_matricula VARCHAR(50),_curso VARCHAR(10))
BEGIN
    DECLARE idPersonaTemp,idUserTemp INT DEFAULT 0;
    
    INSERT INTO persona (nombre,correo) 
    VALUES (_nombre,_apellidoPaterno,_apellidoMaterno,_fechaNacimiento,_direccion,_telefono,_correo);
    
    SET idPersonaTemp = last_insert_id();
    
    INSERT INTO usuario (usuario,pass,estatus) 
    VALUES (_matricula,_matricula,1);
    
    SET idUserTemp = last_insert_id();
    
    INSERT INTO alumno VALUES (_matricula,idPersonaTemp,idUserTemp,_curso,1);
    
    SELECT * FROM vista_alumnos WHERE id = _matricula;

END //

我从邮递员那里得到的答复

[
    [
        "Simon","Lopez","Fri,23 Oct 1998 00:00:00 GMT","Miguel Hidalgo 515","4761138167","simon.valt23@gmail.com","178724",9,"1APre",1
    ]
]

我希望有人可以向我解释这个问题,以及如何获取带有列名的响应json以标识值。

解决方法

我得到了答案,在Python代码上添加了几行

    conect = mysql.connection.cursor()
    conect.callproc('insertarAlumno',dataUser)
    *columns=[x[0] for x in conect.description]
    data = conect.fetchall()
    *json_data=[]
    *for result in data:
        *json_data.append(dict(zip(columns,result)))
   
    *return jsonify(json_data)

以*开头的行相对于帖子进行了修改,或者只是添加了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。