在使用MariaDB的自定义连接器之前,我正在进行的项目中,但现在我必须在Django中使用MySQL的默认连接器
以前的MariDb连接器使用?
进行参数化,但Django的MySQL使用%s
有了MariaDB,你可以这样做:
sd_query = create_update_query(interpretation, record_id, tableName)
cursor.execute(sd_query, tuple(interpretation.values()) )
如何使用%s
参数化实现它
我在官方文件中找不到任何东西
对于这个任务来说,普通的python字符串格式是不够的,有人可以尝试进行查询注入,我的意思是,可能性仍然存在(即使您保护了查询sintax)。Django已经为您解决了这个问题,所以您不必考虑太多,请查看Django文档的这一部分
如果您问的是如何准备SQL,那么这是一个特定于Python的问题,而不是Django。 你可以这样做-
现在,如果您想在Django中执行它,您需要从连接导入游标
然后以以下方式执行:
如果SQL语句返回某些内容,则可以使用
然后您将能够循环使用'records'变量
你似乎对我在你的之前的question中给你的解决方案感到困惑,在那里我使用了
'{}%'.format(some_value)
,因为你有一个值,想用它做一个类似的查询(<SOME_VALUE>%
),所以我执行了字符串格式化,以使字符串具有正确的所需形式。这里不需要这样做,只需传递元组即可,因此这里的操作与使用MariaDB光标时的操作相同,唯一的区别是在占位符中使用%s
而不是?
:相关问题 更多 >
编程相关推荐