资讯专栏INFORMATION COLUMN

ironpython利用装饰器执行sql

Enlightenment / 2729人阅读

摘要:比较喜欢的装饰器试了下一种用法,通过装饰器来传递,并执行返回结果这个应用应该比较少为了方便起见,直接使用了连接的算是为了好玩吧,回看了下,可能实际用的机会不多

比较喜欢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()

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37496.html

相关文章

  • Python基础题目大全,测试你的水平,巩固知识(含答案)

    摘要:里,有两种方法获得一定范围内的数字返回一个列表,还有返回一个迭代器。在引用计数的基础上,还可以通过标记清除解决容器对象可能产生的循环引用的问题。列举常见的内置函数的作用,过滤函数,循环函数累积函数一行代码实现乘法表。 showImg(https://segmentfault.com/img/remote/1460000019294205); 1、为什么学习Python? 人生苦短?人间...

    huhud 评论0 收藏0
  • 【FAILED】记一次Python后端开发面试的经历

    摘要:正确的思路是等概率随机只取出共个数,每个数出现的概率也是相等的随机输出把一段代码改成,并增加单元测试。代码本身很简单,即使没学过也能看懂,改后的代码如下但是对于单元测试则仅限于听过的地步,需要用到,好像也有别的模块。 在拉勾上投了十几个公司,大部分都被标记为不合适,有两个给了面试机会,其中一个自己觉得肯定不会去的,也就没有去面试,另一个经历了一轮电话面加一轮现场笔试和面试,在此记录一下...

    kohoh_ 评论0 收藏0
  • Python之装饰、迭代和生成

    摘要:在学习的时候,三大名器对没有其他语言编程经验的人来说,应该算是一个小难点,本次博客就博主自己对装饰器迭代器和生成器理解进行解释。 在学习python的时候,三大名器对没有其他语言编程经验的人来说,应该算是一个小难点,本次博客就博主自己对装饰器、迭代器和生成器理解进行解释。 装饰器 什么是装饰器?装饰从字面意思来谁就是对特定的建筑物内按照一定的思路和风格进行美化的一种行为,所谓器就是工具...

    30e8336b8229 评论0 收藏0
  • 使用TS+Sequelize实现更简洁的CRUD

    摘要:哈哈,这又是为什么呢细心的同学可能会发现,的返回值是一个类型的,所以上边并没有属性,的两个属性也是如此。我们通过在函数上边添加一个范型的定义,并且添加限制保证传入的范型类型一定是继承自的,在返回值转换其类型为,就可以实现功能了。 如果是经常使用Node来做服务端开发的童鞋,肯定不可避免的会操作数据库,做一些增删改查(CRUD,Create Read Update Delete)的操作,...

    JayChen 评论0 收藏0
  • Python装饰-装饰流程,执行顺序

    摘要:最近看到一个关于的题文章其中的一个是装饰器的顺序问题就想写篇博客回顾下装饰器首先强烈推荐很久之前看的一篇博文翻译理解中的装饰器关于什么是装饰器看这篇文章就好了这里主要想写关于多个装饰器的执行流程装饰顺序示例代码初始化初始化输出结果初始化初始 最近看到一个关于Flask的CTF(RealWorld CTF 2018 web题bookhub)文章其中的一个trick是装饰器的顺序问题,就想...

    cpupro 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<