Este artículo le mostrará un ejemplo sobre cómo llamar al procedimiento almacenado de MySQL en python. Utilizará tanto el python mysql-connector-python biblioteca y el python pymysql biblioteca.
1. Llame al procedimiento almacenado de MySQL en los pasos de Python.
- Cree dos procedimientos almacenados MySQL utilizando el siguiente código fuente.
- Procedimiento almacenado de MySQL add_number .
USE `dev2qa_example`;DROP procedimiento SI EXISTE `add_number`;DELIMITER $$USE `dev2qa_example`$$CREATE PROCEDURE `add_number` (a int, b int, out sum int) COMENZAR set sum =a + b; FIN$$DELIMITADOR;
- Procedimiento almacenado de MySQL número_múltiple .
USE `dev2qa_example`;DROP procedimiento SI EXISTE `multiple_number`;DELIMITER $$USE `dev2qa_example`$$CREATE PROCEDURE `multiple_number` (a int, b int, out sum int) COMENZAR set sum =a * b; FIN$$DELIMITADOR;
- Compruebe si python mysql-connector-python biblioteca y el python pymysql La biblioteca se ha instalado en su entorno de python.
$ pip show mysql-connector-pythonName:mysql-connector-pythonVersion:8.0.25Resumen:Controlador MySQL escrito en PythonHome-page:http://dev.mysql.com/doc/connector-python/en/index. htmlAutor:Oracle y/o sus afiliadosCorreo electrónico del autor:DESCONOCIDOLicencia:GNU GPLv2 (con excepción de licencia FOSS)Ubicación:/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packagesRequiere:protobufRequired-by:**************************************************** ***************************************** $ pip show pymysqlName:PyMySQLVersion:1.0. 2Resumen:Pure Python MySQL DriverHome-page:https://github.com/PyMySQL/PyMySQL/Author:yutaka.matsubaraAuthor-email:[email protected]:"MIT"Ubicación:/Library/Frameworks/Python.framework/Versions /3.7/lib/python3.7/site-packagesRequires:Requerido por:
- Si el python mysql-connector-python y el pymysql biblioteca no está instalada en su entorno de python, puede ejecutar el comando pip install pymysql o pip install mysql-connector-python para instalarlos.
- Llamar al procedimiento almacenado MySQL use python mysql-connector-python código fuente de ejemplo del módulo. connector.connect(usuario=usuario, contraseña=contraseña, host=host, puerto=puerto, base de datos=base de datos, use_unicode=use_unicode) devuelve conn# cierra la conexión mysql. def close_mysql_connection(conn):si conn no es Ninguno:conn.close() conn =Ninguno # llamar al procedimiento almacenado mysql. def call_procedure_stored(conn, store_procedure_name):cursor =conn.cursor() out_args =cursor.callproc(stored_procedure_name, (5, 6, 0)) print(out_args) print(out_args[0]) print(out_args[1]) print (out_args[2]) conn.commit() cursor.close() if __name__ =='__main__':conn =open_mysql_connection() call_stored_procedure(conn, 'add_number') call_stored_procedure(conn, 'multiple_number') close_mysql_connection(conn)
- A continuación se muestra el resultado del ejemplo anterior.
(5, 6, 11)5611(5, 6, 30)5630
- Si desea utilizar python pymysql módulo para llamar al procedimiento almacenado de MySQL, la única diferencia es cómo obtener el objeto de conexión de la base de datos MySQL, cuando obtenga el objeto de conexión de la base de datos MySQL use pymysql módulo, puede llamar al anterior def call_stored_procedure(conn, stored_procedure_name): función para llamar también al procedimiento almacenado de MySQL.
- Abajo está el código fuente que puede hacer que el objeto de conexión de la base de datos MySQL use python pymsql.
desde pymysql import connect, cursors# get mysql connection object.def open_mysql_connection(host='127.0.0.1', user='jerry' , contraseña='jerry', db='dev2qa_example', charset='utf8', cursorclass=cursors.DictCursor):conn =connect(host=host, usuario=usuario, contraseña=contraseña, db=db, charset=charset, cursorclass=cursorclass) return conn # cerrar conexión mysql. def close_mysql_connection(conn):si conn no es Ninguno:conn.close()