数据库访问-records库

2023-11-07

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、端口、数据库名称及特定参数等信息来组成

输出Record实例 

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额外提供了一个批量操作的方法 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库访问-records库 的相关文章

  • 在 python + Flask + Gunicorn + nginx + Compute Engine 应用程序中从 Google Cloud Storage 读取文件失败

    在 python Flask Gunicorn nginx Compute Engine 应用程序中读取从 Google Cloud Storage 下载的文件失败 代码链接 https github com samuq CE test h
  • 地图与星图的性能?

    我试图对两个序列进行纯Python 没有外部依赖 逐元素比较 我的第一个解决方案是 list map operator eq seq1 seq2 然后我发现starmap函数来自itertools 这看起来和我很相似 但事实证明 在最坏的情
  • Pygame 玩家精灵没有出现

    我一直在为学校计算机课做这个项目 但无法让玩家精灵出现 有人可以帮忙吗 当我运行主游戏循环时 除了玩家精灵之外 所有内容都正确显示 它应该由于箭头输入而在屏幕上移动并受到重力的影响 当我删除图像并仅使用对象类和矩形时 该代码也有效 impo
  • 确定Python模块中的函数是否可用

    我正在研究一些使用Python套接字的代码socket fromfd http docs python org library socket html socket fromfd功能 但是 此方法并非在所有平台上都可用 因此我正在编写一些后
  • 肥皂服务的良好框架是什么?

    我正在寻找一个用于肥皂的好框架service 我更喜欢使用Pythonic框架 但是在查看了soaplib rpclib 太不稳定 SOAPy 不适用于2 7 和ZSI 太 令人困惑 之后 我不确定这是否可能 我对使用另一种语言感到满意 尽
  • int 对象在尝试对数字的数字求和时不可迭代? [复制]

    这个问题在这里已经有答案了 我有这个代码 inp int input Enter a number for i in inp n n i print n 但它抛出一个错误 int object is not iterable 我想通过将每个
  • Python变量赋值问题

    a b 0 1 while b lt 50 print b a b b a b 输出 1 2 4 8 16 32 wheras a b 0 1 while b lt 50 print b a b b a b 输出 正确的斐波那契数列 1 1
  • 按字段名称对命名元组列表进行排序的 Pythonic 方法

    我想对命名元组列表进行排序 而不必记住字段名的索引 我的解决方案看起来相当尴尬 希望有人能有一个更优雅的解决方案 from operator import itemgetter from collections import namedtu
  • 将 csv 文件按多列拆分为 panda 数据框

    我有一个包含多列的 tsv 文件 有 10 多列 但对我来说重要的列是名称为 user name shift id url id 的列 我想创建一个数据框 首先根据用户名分隔整个 csv 文件 即只有具有相同用户名的行才会分组在一起 从该块
  • 不重复的Python组合

    我有一个数字列表 我想从中进行组合 如果我有清单 t 2 2 2 2 4 c list itertools combinations t 4 结果是 2 2 2 2 2 2 2 4 2 2 2 4 2 2 2 4 2 2 2 4 但我想得到
  • 在 (i)python 脚本中从 jupyter 内核获取输出

    我想从单个 ipython 会话中打开多个内核 在这些内核上运行代码 然后收集结果 但我不知道如何收集结果 甚至不知道如何查看 stdout stderr 我怎样才能做这些事情呢 到目前为止我所得到的 我已经使用如下代码管理了前两个步骤 打
  • 对于 pygtk 应用程序来说,什么是好的嵌入式浏览器?

    我计划在我的 pygtk 应用程序中使用嵌入式浏览器 并且我正在 gtkmozembed 和 pywebkitgtk 之间进行辩论 两者之间有什么引人注目的区别吗 还有我不知道的第三种选择吗 应该注意的是 我不会使用它来访问网络上的内容 我
  • 如何在树莓派上更新到最新的 python 3.5.1 版本?

    我昨天拿到了 Raspberry Pi 我已经在尝试用它来编写代码了 我有一个计划在其上运行的程序 但它仅与 Python 版本 3 5 0 或 3 5 1 兼容 并且我在互联网上找到的所有内容似乎都已经过时 与 Python 2 有关 或
  • 尝试在 Mac OSX 上的 virtualenv 和 MySQL 中安装 Django CMS 时出错

    当我尝试使用 virutalenv 安装带有 MySQL 的 django CMS 时 出现以下错误 RuntimeError maximum recursion depth exceeded Users ethan Sites env b
  • 在 Java Web 应用程序中获取 DataSource 资源

    我的 context xml 文件中有以下资源标记
  • Tornado websocket handler , self.close() 正在关闭连接而不触发 on_close() 方法

    我是 python stackoverflow tornado 的新手 所以请耐心等待 纠正我 我正在使用龙卷风开发实时应用程序 当我在 Websocket 处理程序类中调用 self close 时 on close 方法不会启动 这次我
  • 安排 Asyncio 任务每 X 秒执行一次?

    我正在尝试创建一个 python 不和谐机器人 它将每隔 X 秒检查一次活跃会员 并根据会员的在线时间奖励积分 我正在使用 asyncio 来处理聊天命令 这一切都正常 我的问题是找到一种方法来安排每隔 X 秒异步检查一次活动成员 我已经阅
  • 用于桌面数据库应用程序的 Python 框架

    是否有一个框架可以为Python开发桌面数据库应用程序 一些带有CRUD屏幕的屏幕 我正在寻找类似于 Windows 窗体的东西 能够将 TextField Combos 和其他 UI 隐喻与datasets连接到关系数据库例如 MySQL
  • PyQt QFileDialog exec_ 很慢

    我正在使用自定义QFileDialog因为我想选择多个目录 但是exec 功能非常慢 我不明白为什么 我正在使用最新版本的 PyQt 代码片段 from PyQt4 import QtGui QtCore QtNetwork uic cla
  • 如何限制mySQL中的搜索和替换字符串

    我用它来搜索和替换 mySQL 中的字符串 UPDATE products SET prodname REPLACE prodname S S 这些产品包含诸如 TYLENOL TABS 100 S 之类的字符串 我想将其转换为 TYLEN

随机推荐

  • 认识k8s

    本篇文章没有什么强逻辑思维 你看下去就对了 讲下本文背景 博主在面试的过程中 不断被现实捶打 竟然有一次被问及了解k8s吗 我滴妈妈咪呀 我只知道工作中公司用的是k8s 但不知道是啥 被问的一脸懵逼 瞬间给面试官留下的印象从高级降为中级 不
  • 所向披靡的响应式开发——如何一招制胜?前端工程师必会技能

    之前也接触过响应式开发 大概就是下载一个响应式网站模板 然后替换图片 哈哈 确实没有系统的学习和了解过响应式开发 最近工作还蛮清闲 找出压箱底很久的响应式开发教程 大概一月前看过一些 然后也忘得差不多la 从头开始学习呗 这套课程还是很基础
  • Web3的2048,Sui 8192能否打开全链游戏的大门?

    作者 Peng SUN Foresight News Sui 8192 一局游戏就是一个NFT Sui 8192智能合约基于Move语言编写 构成非常简单 包括游戏 Game Board与排行榜 Leaderboard 三部分 覆盖方块移动
  • [keil]L6200E: Symbol XXX multiply defined .O...错误解决方法

    当编译时提示这样的错误时 是因为框出来的变量被重复定义了 我们要从定义的地方解决 1 首先 我们全局搜索这个变量 ctrl f 搜索这个变量在工程中被定义的位置 2 如果发现有多个文件中都有定义过 例如在a c和b c中都有int a 0
  • 电容降压整流电源电路

    https www dianziaihaozhe com dianyuan 924 电容降压整流电源电路通常用于低成本取得非隔离的小电流电源 输出电压一般为几伏到二三十伏 输出电流为几毫安到几十毫安 大多取决于所使用的稳压二极管 所能提供的
  • 机器学习和数据科学从业者必读的10本免费英文书

    本文编译自https www kdnuggets com 2018 05 10 more free must read books for machine learning and data science html 夏天本该是放松的季节
  • android首页底部tab动画,Android实现主页底部菜单中间tab图案凸起

    效果图 因为原来的代码底部导航栏使用的是 LinearLayout ImageView TextView 组合 所以 在这里用到了一个及其重要的属性 android clipChildren false 放在其父布局使其生效 达到想要的效果
  • Python __str__方法

    str 方法 1 不定义 str 方法 使用 print 函数输出对象实例时 默认打印对象实例的内存地址 2 定义 str 方法 使用 print 函数或将对象转换为字符串时 自动调用此方法 3 返回值必须是字符串 str 是Python中
  • centos7上hive3.1.3安装及配置

    1 安装背景 hive是基于hadoop的数据仓库软件 部署运行在linux系统之上 安装之前必须保证hadoop环境运行正常 hive本身不是分布式软件 它的分布式主要是借助hadoop实现 存储是hdfs 计算是mapreduce 需要
  • openGL之API学习(九十三)OpenGL中EXT,ARB扩展

    由于OpenGL的标准更新不是很频繁 因此 当某种技术应用流行起来时 显卡厂商为了支持该技术 会使用自己的扩展来实现该功能 但是不同厂商如果有不同的实现 那么程序编写将会异常繁琐 因此多个厂商共同协商使用一致的扩展 这就是EXT扩展 如果这
  • 时序预测

    时序预测 MATLAB实现CNN BiLSTM卷积双向长短期记忆神经网络时间序列预测 风电功率预测 目录 时序预测 MATLAB实现CNN BiLSTM卷积双向长短期记忆神经网络时间序列预测 风电功率预测 预测效果 基本介绍 程序设计 参考
  • java基础之符号

    hello 大家好 今天 小白将继续分享 如果我说的有什么不妥之处 恳请大佬们指出来 如果大家觉得我写的不错 就给我点个赞鼓励一下 小白在此谢谢各位了 众所周知 程序都是按照着一定的规则进行编写的 这些规则被称为语法 只有语法正确了 程序才
  • C++_STL_常用的拷贝和替换算法

    copy 把A数组拷贝到另一个B数组中 void main copy vector
  • windows控制台命令合集

    转自 微点阅读 https www weidianyuedu com windows控制台命令 大集合 开始 运行 命令 集锦 winver 检查Windows版本 wmimgmt msc 打开windows管理体系结构 WMI wupdm
  • 定位Flutter内存问题很难么?

    简介 flutter内存泄漏定位 作者 闲鱼技术 三莅 内存水位升高导致的稳定性问题严重影响app用户体验 所以开发者们非常关注Flutter的内存表现 随着Flutter业务越来越多 闲鱼也面临着oom导致的crash率提升的问题 下面我
  • 两个经典回文字符串问题中的巧妙算法

    问题一 最长回文子串 给定一个字符串 s 找到 s 中最长的回文子串 第一眼的想法是暴力法 由于其时间复杂度高达O n 3 当s过长时效率会特别低 方法一 中心扩展算法 其思想就是遍历一遍字符串 其中在每一个点都进行以其为中心而均匀展开 分
  • 内网隧道搭建ksa工具-端对端-无需公网VPS做流量转发

    1 前言 看雪安全接入 KSA 一款傻瓜式的一键接入私有网络的工具 无论您在任何地点 任何时间 使用任何线路 均可利用这一服务接入自己的私有设备 KSA的服务端和客户端集成在一个可执行文件之中 目前支持Windows macOS和Linux
  • LU分解算法(串行、并行)

    一 串行LU分解算法 详细见MIT线性代数 1 LU分解 矩阵分解 LU分解 分解形式 L 下三角矩阵 U 上三角矩阵 目的 提高计算效率 前提 1 矩阵A为方阵 2 矩阵可逆 满秩矩阵 3 消元过程中没有0主元出现 也就是消元过程中不能出
  • sql ntext數據類型字符替換

    ntext數據類型字符替換 2011 08 21 塗聚文 深圳大運會期間 政府貼出 溫馨提示 交通管制 世界之窗周邊不充許到陽台觀看 出入憑居住證不是身份證 create table tt sid INT IDENTITY 1 1 cont
  • 数据库访问-records库

    records是由requests作者开发的一个DB访问库 与requests的宗旨一样 records也力图成为一个非常易用的DB库 它是基于SQLAlchemy库封装的一个上层库 import records db records Da