ironpython利用裝飾器執行sql

2021-09-20 06:51:52 字數 1155 閱讀 2238

比較喜歡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)

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 decorator

@mssql(sql="select getdate()")

def get_data(sql_rst=""):

print sql_rst[0]

get_data()

算是為了好玩吧,回看了下,可能實際用的機會不多

tornado利用裝飾器記錄每個http請求

python利用裝飾器記錄每個http請求 設定裝飾器 from functools import wraps from datetime import datetime function 用於記錄每個http請求 然後在每個請求函式上面加上這個裝飾器 這個時候我們那就可以看到裝飾器中的print值...

裝飾器之類裝飾器

外部的方法至今都玩過了,現在來思索一下的方法這麼裝飾 類方法修飾器 類的方法唯一的特殊點在於,self內部是可以呼叫的,但是在外部卻是隱藏的,那這個怎麼搞 為求穩妥,先定參修飾乙個 def godme fun def godme self,message print before fun self,...

python裝飾器 裝飾器

由於函式也是乙個物件,而且函式物件可以被賦值給變數,所以,通過變數也能呼叫該函式。def now print 2015 3 25 f now f 2015 3 25 函式物件有乙個 name 屬性,可以拿到函式的名字 now.name now f.name now 現在,假設我們要增強now 函式的...