Bull's blog Bull's blog
Resume
MBTI 测评
  • Tools Home
  • Testing Toolbox
  • 测试文件下载中心
  • 图片测试文件下载
  • 音频测试文件下载
  • 视频测试文件下载
  • 文档测试文件下载
  • Pinyin Dictation Sheet
  • English Word Daily
  • Paper Games
  • AI Podcast Generator
  • Work Notes
  • Categories
  • Tags
  • Archives

Bull

Resume
MBTI 测评
  • Tools Home
  • Testing Toolbox
  • 测试文件下载中心
  • 图片测试文件下载
  • 音频测试文件下载
  • 视频测试文件下载
  • 文档测试文件下载
  • Pinyin Dictation Sheet
  • English Word Daily
  • Paper Games
  • AI Podcast Generator
  • Work Notes
  • Categories
  • Tags
  • Archives
  • 马上消费

  • 斗虫

  • 天眼查

    • 概述
    • 10.ORM库的运用(SQLAlchemy)
    • 20.十分钟编写界面的造数工具(pywebio)
    • 30.快速实现接口重构测试---deepdiff库使用
  • 某米

  • 自学笔记

  • AI质量工程实践

  • 工作经历
  • 天眼查
wangyang
2023-09-06

10.ORM库的运用(SQLAlchemy)

什么是ORM?

是用代码封装SQL的操作,既只需要写Python代码即可自动生成SQL查询

为什么用ORM?

因为数据项目查库的地方多

简单范例

下面的代码是我为巡检任务编写的数据库操作类(ORM的概念就是用类操作数据库) 实际上创建表也可以用这里的test_log_v1数据类来操作 其他各种操作,可以编写成py函数(如下update_data和search_date)

# 创建对象的基类:
Base = declarative_base()

# 定义数据表对象:
class test_log_v1(Base):
    # 表的名字:
    __tablename__ = 'retry_list'

    # 表的结构:
    url_no = Column(BigInteger,primary_key = True)
    retry_status = Column(BigInteger)

# ================
# 初始化数据库连接:
engine = create_engine('mysql+mysqlconnector://root:b_test')
# 创建DBSession类型:
DBSession = sessionmaker(bind=engine)

# ===================
def update_data(url_no,retry_status):
    # 写数据
    # 创建session对象:
    session = DBSession()
    info = session.query(test_log_v1).filter(test_log_v1.url_no == url_no).update({'retry_status':retry_status})

    # # 创建新User对象:
    # info = test_log_v1(url_no=url_no,retry_status=retry_status)
    # 添加到session:
    # session.add(info)
    # 提交即保存到数据库:
    session.commit()
    # 关闭session:
    session.close()

# ====================
def search_date(url_no):
    # 查询数据
    # 创建Session:
    session = DBSession()
    # 创建Query查询,filter是where条件,最后调用one()返回唯一行,如果调用all()则返回所有行:
    info = session.query(test_log_v1).filter(test_log_v1.url_no==url_no).one()
    # 打印类型和对象的name属性:
    print('status:', info.retry_status)
    # 关闭Session:
    session.close()

if __name__ == '__main__':
    update_data(1,9)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#原创
上次更新: 2025/12/05, 14:57:23
概述
20.十分钟编写界面的造数工具(pywebio)

← 概述 20.十分钟编写界面的造数工具(pywebio)→

最近更新
01
test-report
04-15
02
数字测试资产库与执行体系
04-12
03
语音与多模态接口回归
04-12
更多文章>
Theme by Vdoing | Copyright © 2018-2026 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式