欢迎访问宙启技术站
智能推送

Python中如何使用SQLAlchemy的Numeric()数据类型

发布时间:2023-12-27 22:55:29

在Python中,使用SQLAlchemy的Numeric()数据类型可以在数据库中存储十进制数值。Numeric()类型接受两个参数, 个参数指定总共的位数,第二个参数指定小数点后的位数。在使用Numeric()数据类型之前,需要先导入SQLAlchemy模块并创建一个数据库连接。

以下是使用SQLAlchemy的Numeric()数据类型的示例代码:

# 导入SQLAlchemy模块
from sqlalchemy import create_engine, Column, Numeric
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

# 创建数据库连接
engine = create_engine('数据库连接URL')
Base = declarative_base()
Session = sessionmaker(bind=engine)
session = Session()

# 创建一个数据表类
class Product(Base):
    __tablename__ = 'products'
    id = Column(Numeric(10,0), primary_key=True)   # 数字类型,总共10位,没有小数点
    price = Column(Numeric(10,2))   # 数字类型,总共10位,小数点后2位

# 创建表格
Base.metadata.create_all(engine)

# 插入数据
p1 = Product(id=1, price=9.99)
p2 = Product(id=2, price=19.99)
session.add_all([p1, p2])
session.commit()

# 查询数据
products = session.query(Product).all()
for product in products:
    print(f"ID: {product.id}, Price: {product.price}")

在上述示例中,首先导入了所需的SQLAlchemy模块,并创建了一个数据库连接。然后,使用declarative_base()函数创建一个基类Base,用于定义数据表类。Session类用于创建与数据库的会话对象。

接下来,定义了一个名为Product的数据表类,它继承了Base类,并定义了两个列,idprice,它们都是用Numeric()数据类型定义。

然后,使用create_all()方法创建数据库表格。

接着,插入了两个数据行,并使用session.commit()提交到数据库中。

最后,使用query()方法查询了所有的产品数据,并遍历输出。

总结:

使用SQLAlchemy的Numeric()数据类型,可以在Python中轻松地将十进制数值存储到数据库中。通过指定总共的位数和小数点后的位数,可以根据需要精确地控制数值的存储方式。这在处理货币金额等需要精确计算的场景中非常有用。