首页 > 编程语言 >Python 之records教程

Python 之records教程

时间:2024-09-13 15:37:43浏览次数:1  
标签:教程 rows name Python age records query table

目录

Python 之records教程

一、安装

pip install records

二、初始化

import records

# 初始化db 连接 , 支持从 环境变量 DATABASE_URL 读取 url
#  数据库类型 + 数据库驱动名://用户名:密码@ip:端口/数据库名
db = records.Database("mysql+pymysql://root:[email protected]:3306/test")

三、增,删,改,查

1. 增加

创建表

# 创建表
sql_create_table = """
CREATE TABLE IF NOT EXISTS records_table(
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(20) NOT NULL,
    age INT NOT NULL
)
"""

db.query(sql_create_table)
#  插入数据,必须使用 事务,不然插入失败,
with db.transaction() as tr:
    # 单条数据操作
    tr.query("insert into records_table(name,age) values('alex',18)")
    tr.query("insert into records_table(name,age) values (:name,:age)", name="alex", age=18)
    records_demo_row = {"name": "username1", "age": 31}
    insert_one_sql = f"insert into records_table(name, age) values ('{records_demo_row['name']}',{records_demo_row['age']})"
    tr.query(insert_one_sql)
    tr.query("insert into records_table(name,age) values (:name,:age)", **records_demo_row)
    # 数据批量操作
    records_demo_rows = [
        {"name": "username2", "age": 32},
        {"name": "username3", "age": 33},
        {"name": "username4", "age": 34},
    ]
    # 批量增加
    tr.bulk_query("insert into records_table(name,age) values (:name,:age)", records_demo_rows)

2. 删除(必须使用事务,不然不生效)

# 删除
with db.transaction() as tr:
    tr.query("delete from records_table where id =:id", id=1)
    tr.bulk_query("delete from records_table where id=:id", [{"id": 1}, {"id": 2}])

3. 修改(必须使用事务,不然不生效)

# 更新 与插入类型
with db.transaction() as tr:
    tr.query("update records_table set age=:age where name=:name", age=100, name="username1")
    tr.bulk_query("update records_table set age=:age where name=:name",
                  [{"name": "username2", "age": 123}, {"name": "username3", "age": 234}])

4.查询

rows = db.query("SELECT name,age FROM records_table WHERE name=:name",name="zhangsan")

# 支持迭代遍历
for row in rows:
 print(row.name, row.get("age"))

# Record 对象
rows[0]
<Record {"name": "zhangsan", "age": 18}>
rows[0].as_dict()
{'id': 1, 'name': 'zhangsan', 'age': 18}
rows[0].name
'zhangsan'
rows[0].get('age')
18

# 获取所有
rows.all()

# 字典
rows.as_dict()

# 查询唯一的一个
rows.one(as_dict=False)

# 获取第一个,字典形式
rows.first(as_dict=True)

# 执行sql文件
rows = db.query_file("a.sql")

参考地址:https://zhangheng18.github.io/2021/04/19/python-records/

标签:教程,rows,name,Python,age,records,query,table
From: https://www.cnblogs.com/alex-oos/p/18412284

相关文章

  • 学习Python如何选择合适的学校?
    近年来,由于Python语言比较火爆,掀起了一大波学习热潮,为了满足市场所需,Python培训机构应运而生。而在众多培训机构之中,选择一家适合且靠谱的机构很关键,那么学Python哪个机构好?具体请看下文。一些Python培训机构课程体系看起来很专业,但课程内容差强人意,因为老师讲课水平有限,......
  • Python “集合” 100道实战题目练习,巩固知识、检查技术
     本文主要是作为Python中列表的一些题目,方便学习完Python的列表之后进行一些知识检验,感兴趣的小伙伴可以试一试,含选择题、判断题、实战题、填空题,答案在第五章。在做题之前可以先学习或者温习一下Python的列表,推荐阅读下面这篇文章:Python全网最全基础课程笔记(九)——集合......
  • [Python数据采集]Playwright-新一代数据采集神器入门(一)
    Playwright是由Microsoft维护的一个开源自动化框架,用于跨浏览器的Web应用程序测试和数据采集。与Selenium类似,它允许开发者控制网页浏览器进行自动化任务,但Playwright提供了更现代化的功能和更高的效率,尤其在处理复杂的网页时表现出色。Playwright的核心特性跨浏......
  • IP地址、地址分类、子网掩码、子网划分、使用Python计算子网划分
    IP地址(InternetProtocolAddress)乃是用于明确标识网络中各类设备的独一无二的地址。IP地址主要存在两种重要类型,即IPv4和IPv6。IPv4地址IPv4地址实则是一个由32位二进制数字所构成的标识,通常会以四个十进制数字的形式呈现出来,每一个数字均处于0至255的区间范围内,且通......
  • swagger教程-狂神版
    学习目标:了解Swagger的概念及作用掌握在项目中集成Swagger自动生成API文档Swagger简介前后端分离前端->前端控制层、视图层后端->后端控制层、服务层、数据访问层前后端通过API进行交互前后端相对独立且松耦合产生的问题前后端集成,前端或者后端无法做......
  • Dolphin Scheduler 进阶教程
    一.传参传参有两种变量:局部变量和全局变量1.局部变量--针对于一个任务创建三个shell任务a1,a2,a3并写入相同的脚本,选择自定义参数只给a1传入参数,具体操作如下:其他两个shell任务不传参数然后将工作流上线,执行,查看日志发现只有a1打印了传递的参数:2.全局变量--多个任务都......
  • Redis高级教程(一)
    Redis数据备份与恢复Redis中SAVG命令用于创建当前数据库的备份语法SAVG命令执行该命令后将会在redis安装目录的src/下创建dump.rdb文件。恢复数据如果恢复数据,要将备份文件(dump.rdb)移动到redis安装目录并启动服务即可(默认备份的目录就在redis安装目录下所以备份后重......
  • 【python】爬取网站数据
    编码问题因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这个机会算是彻底搞清楚了。问题要从文字的编码讲起。原本的英文编码只有0~255,刚好是8位1个字节。为了表示各种不同的语言,自然要进行扩充。中文的话有GB系列。可能还听说过Unicode和UTF-8,那么,它们之间是什么关系......
  • python 获取163 邮箱的邮件信息
    此案例是是获取的一个亚马逊的验证码importtimefromimaplibimportIMAP4_SSLimportimaplib,email,datetimefromlxmlimportetreefromdateutil.parserimportparsedefstr_to_unicode(s,encoding=None):returnstr(s,encoding)ifencodingelsestr(s)def......
  • SAP_ABAP_BAPI函数清单案例教程
    SAPABAP顾问能力模型(同心圆方法论)_sapabap顾问能力模型(同心圆方法论)-CSDN博客文章浏览阅读1.8k次,点赞5次,收藏35次。目标:基于对SAPabap顾问能力模型的梳理,给一年左右经验的abaper快速成长为三年经验提供超级燃料!_sapabap顾问能力模型(同心圆方法论)https://blog.csdn......