Python调用MySql存储过程基本应用方式解读

Python编程语言的出现,为开发人员带来了非常大的好处。对于初学者来说,掌握这一语言的应用其实是比较简单的。我们在这里先为大家介绍一种比较常用的应用技巧,Python调用MySql存储过程的实现方法。#t#

创新互联建站从2013年成立,先为璧山等服务建站,璧山等地企业,进行企业商务咨询服务。为璧山企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

Python调用MySql存储过程配置环境:

1.mysql5.0 或者以上支持存储过程的版本

2.安装MySQL-python,目前支持到2.x

Python调用MySql存储过程步骤一.数据库准备

1.建立表

 
 
 
  1. view sourceprint?1 CREATE TABLE `Account` ( 
  2. `id` BIGINT(20) NOT NULL AUTO_INCREMENT, 
  3. `sm_accountName` VARCHAR(100) COLLATE gbk_chinese_ci NOT NULL DEFAULT '', 
  4. `sm_password` TEXT COLLATE gbk_chinese_ci NOT NULL, 
  5. `sm_onlineTime` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0', 
  6. PRIMARY KEY (`id`), 
  7. UNIQUE KEY `accountNameIndex` (`sm_accountName`) 
  8. )ENGINE=InnoDB 

2.建立存储过程

 
 
 
  1. view sourceprint?01 CREATE PROCEDURE `proctest`
    (IN i_id BIGINT, IN i_onlinetime BIGINT, OUT o_accname 
    VARCHAR(30), OUT o_accpwd VARCHAR(50)) 
  2. NOT DETERMINISTIC 
  3. CONTAINS SQL 
  4. SQL SECURITY DEFINER 
  5. COMMENT '' 
  6. BEGIN 
  7. select sm_accountName,sm_password 
  8. into o_accname,o_accpwd 
  9. from `tbl_Account` where id=i_id and sm_onlineTime=
    i_onlinetime limit 1; 
  10. END; 

3.插入部分数据

 
 
 
  1. view sourceprint?1 INSERT INTO `Account` (`id`, 
    `sm_accountName`, `sm_password`, `sm_onlineTime`) VALUES 
  2. (1, 'luoshulin', 'asdfsdf', 0), 
  3. (2, 'test', '1', 0), 
  4. (3, 'adsfasd', 'asdf', 1); 

到这里数据库相关内容就准备好了接下去开始写python脚本

Python调用MySql存储过程步骤二.python脚本

 
 
 
  1. view sourceprint?01 #!/usr/bin/env python 
  2. # -*- coding: utf8 -*- 
  3. import MySQLdb 
  4. import time 
  5. import os, sys, string 
  6. def CallProc(id,onlinetime): 
  7. '''调用存储过程, 
  8. 输入参数:编号,在线时间,输出:帐号,密码; 
  9. 使用输出参数方式''' 
  10. accname='' 
  11. accpwd='' 
  12. conn = MySQLdb.connect(host='localhost',user='root',
    passwd='111111',db='ceshi')
  13. cur =conn.cursor() 
  14. cur.callproc('proctest',(id,onlinetime,accname,accpwd)) 
  15. cur.execute('select @_proctest_2,@_proctest_3') 
  16. data=cur.fetchall() 
  17. if data: 
  18. for rec in data: 
  19. accname=rec[0] 
  20. accpwd=rec[1] 
  21. cur.close() 
  22. conn.close(); 
  23. return accname,accpwd 
  24. def CallProct(id,onlinetime): 
  25. '''调用存储过程, 
  26. 输入参数:编号,在线时间,输出:帐号,密码; 
  27. 使用select返回记录方式''' 
  28. accname='' 
  29. accpwd='' 
  30. conn = MySQLdb.connect(host='localhost',user='root',
    passwd='111111',db='ceshi')cur =conn.cursor() 
  31. cur.nextset() 
  32. cur.execute('call ptest(%s,%s)',(id,onlinetime)) 
  33. data=cur.fetchall() 
  34. if data: 
  35. for rec in data: 
  36. accname=rec[0] 
  37. accpwd=rec[1] 
  38. cur.close() 
  39. conn.close(); 
  40. return accname,accpwd 
  41. name,pwd=CallProct(1,0) 
  42. print name,pwd 

Python调用MySql存储过程步骤三.测试

将python脚本保存为 并执行可以看到结果

 
 
 
  1. view sourceprint?1 [root@redhat-dev python]# python pycallproc.py 
  2. luoshulin asdfsdf 

测试使用的是select返回记录的方式,对于使用输出参数返回结果情况也是一样的。

当前名称:Python调用MySql存储过程基本应用方式解读
当前链接:http://www.csdahua.cn/qtweb/news35/544785.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网