Bull's blog Bull's blog
首页
工作
  • 分类
  • 标签
  • 归档
关于

Bull

首页
工作
  • 分类
  • 标签
  • 归档
关于
  • 马上消费

  • 斗虫

  • 天眼查

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

  • 工作经历
  • 天眼查
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
#原创
上次更新: 2023/09/06, 23:51:11
概述
20.十分钟编写界面的造数工具(pywebio)

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

最近更新
01
30.快速实现接口重构测试---deepdiff库使用
09-21
02
概述
09-07
03
概述
09-07
更多文章>
Theme by Vdoing | Copyright © 2018-2025 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式