我的第一个python web开发框架(11)——工具函数包说明(二)

 db_helper.py是数据库操作包,主要有两个函数,分别是read()数据库读操作函数和write()数据库写操作函数。这个包的代码是从 View Code

  read(sql)是用来执行数据库查询操作,里面没有事务提交,所以用它来执行增删改操作时,虽然能提交成功,但执行后数据库记录也不会有什么变化,所以只能用它来执行select语句

  write(sql, data)是用来执行数据库写操作的,write函数执行后会返回下面几种状态:

  1.False状态(数据库链接失败、sql语句不正确、链接数据库操时等执行数据库出现异常时返回这个状态)

  2.None状态(sql语句没有添加RETURNING id代码指定sql语句执行结束后返回指定字段值时出现;你如果修改代码第80行,data = None为data = True,执行成功时则会返回True状态)

  3.[] (sql语句添加了returning函数,且执行修改或删除时,记录不存在)

  4.{'id': 1,}(sql语句添加了returning函数,执行成功后返回我们指定的字段值)

  PS:我们在执行新增的时候,如果想要获取新增的id,postgresql有一个非常好用的函数returning,只需要在增删改语句的后面添加returning idreturning id,namereturning *等你想要返回的字段名称,语句执行成功以后都会返回这些指定的字段值,大家可以尝试修改测试用例代码,看看返回的值是什么。

复制代码
#!/usr/bin/evn python # coding=utf-8import unittest from common import db_helper   class DbHelperTest(unittest.TestCase):     """数据库操作包测试类"""    def setUp(self):         """初始化测试环境"""        print('------ini------')      def tearDown(self):         """清理测试环境"""        print('------clear------')      def test(self):         # 新增记录,不带return参数        sql = """             INSERT INTO product_class(               name, is_enable)             VALUES (%s, %s)         """         data = ('糖果', 1)         result = db_helper.write(sql, data)         print(result)          # 新增记录,使用return参数返回新增id        sql = """             INSERT INTO product_class(               name, is_enable)             VALUES (%s, %s)             RETURNING id;         """         data = ('饼干', 1)         result = db_helper.write(sql, data)         print(result)          # 修改不存在的记录        sql = """             UPDATE product_class                SET name=%s, is_enable=%s             WHERE id=10000             RETURNING id;         """         data = ('糖果', 1)         result = db_helper.write(sql, data)         print(result)          # 查询记录        sql = """             SELECT * FROM product_class         """         result = db_helper.read(sql)         print(result)  if __name__ == '__main__':     unittest.main()
复制代码

  执行结果

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信