torndb 是一个非常轻量级别的包装, 非常的适度, 推荐使用。基本上是拼 SQL 的,但是帮你做了一些 ORM 和工作,以及防范 SQL 注入问题。
拼接SQL
对未确定数据类型千万不要用简单的字符串拼接,如下面例子
1
2
db.query("SELECT * FROM entries WHERE title = %s", title) # 应该这么写
db.query("SELECT * FROM entries WHERE title = %s" % title) # 不要这么写
关于 SQL 注入
SQL 注入是非常常见的一种网络攻击方式,主要是通过参数来让 mysql 执行 sql 语句时进行预期之外的操作。
torndb
- 默认的字符集为 utf8,默认时区为 time_zone='+0:00',默认连接数据库的端口为 3306,如果非 3306 端口则将端口加在 host 后面。
- torndb 对数据库增删查改的使用较 MySQLdb 要简洁些,把 commit、cursor 都隐藏了,查询返回的结果直接处理成字典,可直接通过字典的形式获取数据库表中对应字段内容。
- torndb 每次获取 cursor 的时候会检查链接是否存在或链接的 idle_time 是否超过了 max_idle_time,超过了则会重新建立一个新的链接。
项目地址
torndb https://github.com/bdarnell/torndb
本文网址: https://pylist.com/topic/136.html 转摘请注明来源