Denne artikel viser dig et eksempel på, hvordan du kalder MySQL-lagret procedure i python. Det vil bruge både python mysql-connector-python biblioteket og pythonen pymysql bibliotek.
1. Kald MySQL Stored Procedure i Python-trin.
- Opret to MySQL-lagrede procedurer ved hjælp af nedenstående kildekode.
- MySQL Stored Procedure add_number .
USE `dev2qa_example`;DROP procedure HVIS EKSISTER `add_number`;DELIMITER $$USE `dev2qa_example`$$CREATE PROCEDURE `add_number` (a int, b int, out sum int)BEGIN sæt sum =a + b; END$$DELIMITER;
- MySQL Stored Procedure multiple_number .
USE `dev2qa_example`;DROP procedure HVIS EKSISTER `multiple_number`;DELIMITER $$USE `dev2qa_example`$$CREATE PROCEDURE `multiple_number` (a int, b int, ud sum int)BEGIN sæt sum =a * b; END$$DELIMITER;
- Tjek, om pythonen mysql-connector-python biblioteket og pythonen pymysql biblioteket er blevet installeret på dit python-miljø.
$ pip show mysql-connector-pythonName:mysql-connector-pythonVersion:8.0.25Sammendrag:MySQL-driver skrevet i PythonHome-page:http://dev.mysql.com/doc/connector-python/en/index. htmlForfatter:Oracle og/eller dets tilknyttede selskaber Forfatter-e-mail:UNKNOWNLicens:GNU GPLv2 (med FOSS License Exception) Placering:/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packagesRequires:prored-byobufRequires:prored-byobuf ************************************************** *****************************************$ pip show pymysqlName:PyMySQLVersion:1.0. 2Sammendrag:Pure Python MySQL DriverHome-page:https://github.com/PyMySQL/PyMySQL/Author:yutaka.matsubaraAuthor-email:[email protected]:"MIT"Location:/Library/Frameworks/Python.framework /3.7/lib/python3.7/site-packagesRequires:Required-by:
- Hvis pythonen mysql-connector-python og pymysql biblioteket ikke er installeret i dit python-miljø, kan du køre kommandoen pip install pymysql eller pip install mysql-connector-python for at installere dem.
- Kald MySQL lagret procedure brug python mysql-connector-python moduleksempel kildekode.
import mysql.connector# get mysql connection object.def open_mysql_connection(user=global_user, password=global_password, host=global_host, port=global_port, database=global_db, use_unicode=True):conn =mysql. connector.connect(bruger=bruger, adgangskode=adgangskode, vært=vært, port=port, database=database, use_unicode=brug_unicode) returner conn# luk mysql-forbindelse. def close_mysql_connection(conn):hvis conn ikke er Ingen:conn.close() conn =Ingen # kalder den lagrede mysql-procedure. def call_stored_procedure(conn, stored_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 /pre>
- Nedenfor er ovenstående eksempel på output.
(5, 6, 11)5611(5, 6, 30)5630
- Hvis du vil bruge pythonen pymysql modul til at kalde MySQL-lagrede procedure, den eneste forskel er, hvordan man får MySQL-databaseforbindelsesobjektet, når du får MySQL-databaseforbindelsesobjektet, brug pymysql modul, kan du kalde ovenstående def call_stored_procedure(conn, stored_procedure_name): funktion til også at kalde den MySQL-lagrede procedure.
- Nedenfor er kildekoden, der kan få MySQL-databaseforbindelsesobjekt til at bruge python pymsql.
fra pymysql import connect, cursors# get mysql connection object.def open_mysql_connection(host='127.0.0.1', user='jerry' , password='jerry', db='dev2qa_example', charset='utf8', cursorclass=cursors.DictCursor):conn =connect(host=host, user=user, password=password, db=db, charset=charset, cursorclass=cursorclass) returner conn # luk mysql-forbindelsen. def close_mysql_connection(conn):hvis conn ikke er Ingen:conn.close()