records是由requests作者开发的一个DB访问库,与requests的宗旨一样,records也力图成为一个非常易用的DB库,它是基于SQLAlchemy库封装的一个上层库
- >>> import records
- >>> db = records.Database('sql://connect_string') # 实例化DB对象
- >>> rows = db.query('select 1') # 执行SQL语句
在具体执行SQL语句之前需要实例化DB对象,真实的场景中需要把DB连接字符串替换为有效的字符串;之后可以通过DB对象的query方法来执行具体的SQL语句,query方法可以执行任意SQL语句并对查询类的SQL返回结果集实例。
records支持的DB连接字符串与SQLAlchemy是一致的,需要根据被访问数据库的类型、DB驱动库、用户名、密码、HOST、端口、数据库名称及特定参数等信息来组成
- import records
- db_string="mysql+pymysql://root:password@localhost:3306/iapi?charset=utf8"
- db=records.Database(db_string)
- rows=db.query('select * from http_api')
- for row in rows:
- print(row)#输出Record实例

print(row.as_dict())#输出Record实例对于的字典内容

print(rows[0])

# print(rows.all())#返回Record实例列表 # print(rows.as_dict())#返回字典内容列表
first方法用于获取结果集中的第一条记录,如果结果集为空,则默认返回None;
print(rows.first())
one方式也用于获取结果集中的第一条记录,如果结果集为空或者结果集不止一条,则会报错。
print(rows.one())
获取具体记录的Record实例后,可以通过多种方式读取具体的字段内容

- row=rows.first()
- print(row.name)
- print(row['name'])
- print(row.get('name'))
- print(row[1])

records还提供了结果集数据的导出功能,包括CSV、Excel、JSON、YAML等多种常用格式
records除了在SQL查询方面提供了更加易用的封装接口,在SQL更新、删除操作上仅仅是SQL执行的操作入口,而在插入操作上records额外提供了一个批量操作的方法
