我如何才能响应 Python Flask APP 中游标的列名?
How i could Column names in response from cursor in Python Flask APP?
我正在使用 Flask 在 Python 3 上开发 API 并尝试将数据插入 Mysql,但响应中只有值,我无法显示正确地在 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,apellidoPaterno,apellidoMaterno,fechaNacimiento,direccion,telefono,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",
"Lopez",
"Fri, 23 Oct 1998 00:00:00 GMT",
"Miguel Hidalgo 515",
"4761138167",
"simon.valt23@gmail.com",
"178724",
"178724",
"178724",
9,
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)
与 post 相比,以 * 开头的行已修改或刚刚添加。
我正在使用 Flask 在 Python 3 上开发 API 并尝试将数据插入 Mysql,但响应中只有值,我无法显示正确地在 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,apellidoPaterno,apellidoMaterno,fechaNacimiento,direccion,telefono,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",
"Lopez",
"Fri, 23 Oct 1998 00:00:00 GMT",
"Miguel Hidalgo 515",
"4761138167",
"simon.valt23@gmail.com",
"178724",
"178724",
"178724",
9,
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)
与 post 相比,以 * 开头的行已修改或刚刚添加。