在ironpython中利用装饰器执行SQL操作的例子


Posted in Python onMay 02, 2015

比较喜欢python的装饰器, 试了下一种用法,通过装饰器来传递sql,并执行返回结果
这个应用应该比较少
为了方便起见,直接使用了ironpython, 连接的mssql server

# -*- coding: utf-8 -*-
import clr
clr.AddReference('System.Data')
from System.Data import *
from functools import wraps

conn_str = "server=localhost;database=DB_TEST;uid=sa;password=sa2008"

def mssql(sql):
  def handler_result(rs):
    rst = []
    while rs.Read():
      rst.Add(rs[0])
    return rst


  def decorator(fn):
    @wraps(fn)
    def wrapper(*args, **kwargs):
      TheConnection = SqlClient.SqlConnection(conn_str)
      TheConnection.Open()
      try:
        MyAction = SqlClient.SqlCommand(sql, TheConnection)
        MyReader = MyAction.ExecuteReader()
      except Exception,ex:
        raise AssertionError(ex)
      rst_data = handler_result(MyReader)
      kwargs["sql_rst"] = rst_data
      result = fn(*args, **kwargs)
      MyReader.Close()
      TheConnection.Close()
      return result
    return wrapper
  return decorator



@mssql(sql="Select getdate()")
def get_data(sql_rst=""):
  print sql_rst[0]

get_data()

算是为了好玩吧,回看了下,可能实际用的机会不多

Python 相关文章推荐
python通过正则查找微博@(at)用户的方法
Mar 13 Python
使用Python脚本来控制Windows Azure的简单教程
Apr 16 Python
Python装饰器用法示例小结
Feb 11 Python
python traceback捕获并打印异常的方法
Aug 31 Python
idea创建springMVC框架和配置小文件的教程图解
Sep 18 Python
django 微信网页授权认证api的步骤详解
Jul 30 Python
Python 等分切分数据及规则命名的实例代码
Aug 16 Python
浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求
Mar 09 Python
python datetime处理时间小结
Apr 16 Python
python爬虫数据保存到mongoDB的实例方法
Jul 28 Python
Python根据字符串调用函数过程解析
Nov 05 Python
python绘图subplots函数使用模板的示例代码
Apr 30 Python
用Python编写简单的定时器的方法
May 02 #Python
用Python程序抓取网页的HTML信息的一个小实例
May 02 #Python
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
May 02 #Python
在Python的Django框架中用流响应生成CSV文件的教程
May 02 #Python
详细解读Python中的__init__()方法
May 02 #Python
举例讲解Python的Tornado框架实现数据可视化的教程
May 02 #Python
Python的Bottle框架中返回静态文件和JSON对象的方法
Apr 30 #Python
You might like
虫族 Zerg 热键控制
2020/03/14 星际争霸
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
php用数组返回无限分类的列表数据的代码
2010/08/08 PHP
smarty中js的调用方法示例
2014/10/27 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
精通Javascript系列之Javascript基础篇
2011/06/07 Javascript
JavaScript中的null和undefined解析
2012/04/14 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
浅析js预加载/延迟加载
2014/09/25 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
JS上传图片预览插件制作(兼容到IE6)
2016/08/07 Javascript
JS正则表达式修饰符中multiline(/m)用法分析
2016/12/27 Javascript
PHP7新特性简述
2017/06/11 Javascript
NodeJS自定义模块写法(详解)
2017/06/27 NodeJs
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
Vue 源码分析之 Observer实现过程
2018/03/29 Javascript
JS使用遮罩实现点击某区域以外时弹窗的弹出与关闭功能示例
2018/07/31 Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
2019/09/19 Javascript
python爬取NUS-WIDE数据库图片
2016/10/05 Python
Python xlwt设置excel单元格字体及格式
2020/04/18 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
Django如何配置mysql数据库
2018/05/04 Python
python调用百度REST API实现语音识别
2018/08/30 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
2018/12/18 Python
python Cartopy的基础使用详解
2020/11/01 Python
详解Django中异步任务之django-celery
2020/11/05 Python
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
几个判断型的面试题
2012/07/03 面试题
全国文明单位申报材料
2014/05/31 职场文书
小学运动会演讲稿
2014/08/25 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
2019森林防火宣传标语大全!
2019/07/03 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书