python传递参数给sql db2_Python,SQLAlchemy传递参数在connection.execute

The tutorial给出了这一个很好的例子:

>>> from sqlalchemy.sql import text

>>> s = text(

... "SELECT users.fullname || ', ' || addresses.email_address AS title "

... "FROM users, addresses "

... "WHERE users.id = addresses.user_id "

... "AND users.name BETWEEN :x AND :y "

... "AND (addresses.email_address LIKE :e1 "

... "OR addresses.email_address LIKE :e2)")

SQL>>> conn.execute(s, x='m', y='z', e1='%@aol.com', e2='%@msn.com').fetchall()

[(u'Wendy Williams, [email protected]',)]

首先,把你的SQL字符串将它传递给sqalchemy.sql.text()。这是没有必要的,但可能是一个好主意......

优点文本()提供了一个简单的字符串是后端中立的绑定参数 支持,每个语句执行选项,以及 为绑定参数和结果列的键入行为,允许SQLAlchemy类型构造在执行字面指定的语句 时发挥作用。

请注意,即使您没有使用text(),也不应仅仅使用sql.format(...)。这会导致更大的攻击风险。

接下来,您可以使用关键字参数为您已经使用的execute()函数指定实际参数。

现在,在你的例子中,你有一个包装执行功能的函数。所以,如果你想用它来进行多个查询,你需要使参数能够接收你的参数。你可以这样做很简单的字典:

def _sql_to_data(sql, values):

...

conn.execute(sql, values)

values会那么dictionary.You可以用你的功能是这样的...

sql = 'SELECT ...'

data = { 'user_id' : 3 }

results = _sql_to_data(sql, data)

使用关键字为您的参数仅仅是一种方式指定​​函数的参数。您可以通过几种不同的方式阅读the documentation。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值