Python中的数据库编程和ORM框架

在Python中,数据库编程通常涉及使用数据库适配器(如psycopg2、sqlite3、PyMySQL等)来连接和操作数据库。然而,许多开发者选择使用对象关系映射(ORM)框架,如SQLAlchemy或Django ORM,以更简洁、更面向对象的方式处理数据库交互。

下面,我将展示如何使用Python的SQLite3库进行数据库编程,以及如何使用SQLAlchemy ORM框架。

使用SQLite3库

SQLite是一个轻量级的数据库,经常被用在Python脚本和应用程序中。下面是一个简单的例子,展示了如何使用SQLite3库来创建一个数据库,创建一个表,并插入、查询数据。

import sqlite3  
  
# 连接到SQLite数据库(如果数据库不存在,它将被创建)  
conn = sqlite3.connect('example.db')  
  
# 创建一个游标对象  
c = conn.cursor()  
  
# 创建一个表  
c.execute('''  
    CREATE TABLE stocks  
    (date text, trans text, symbol text, qty real, price real)  
''')  
  
# 插入数据  
c.execute("INSERT INTO stocks VALUES ('2023-10-23','BUY','RHAT',100,35.14)")  
  
# 提交事务  
conn.commit()  
  
# 查询数据  
for row in c.execute('SELECT * FROM stocks'):  
    print(row)  
  
# 关闭连接  
conn.close()

使用SQLAlchemy ORM框架

SQLAlchemy是一个强大的Python ORM框架,它提供了全面的企业级持久性模型。下面是一个使用SQLAlchemy的例子,演示了如何定义模型、创建表、插入和查询数据。

首先,你需要安装SQLAlchemy:

pip install sqlalchemy

然后,你可以使用以下代码:

from sqlalchemy import create_engine, Column, Integer, String, Float, ForeignKey  
from sqlalchemy.ext.declarative import declarative_base  
from sqlalchemy.orm import sessionmaker, relationship  
  
# 定义模型基类  
Base = declarative_base()  
  
# 定义模型  
class Stock(Base):  
    __tablename__ = 'stocks'  
  
    id = Column(Integer, primary_key=True)  
    date = Column(String)  
    trans = Column(String)  
    symbol = Column(String)  
    qty = Column(Integer)  
    price = Column(Float)  
  
    def __repr__(self):  
        return f"<Stock(symbol='{self.symbol}', qty={self.qty}, price={self.price})>"  
  
# 创建数据库引擎  
engine = create_engine('sqlite:///example.db', echo=True)  
  
# 创建表  
Base.metadata.create_all(engine)  
  
# 创建会话类  
Session = sessionmaker(bind=engine)  
session = Session()  
  
# 插入数据  
new_stock = Stock(date='2023-10-23', trans='BUY', symbol='RHAT', qty=100, price=35.14)  
session.add(new_stock)  
session.commit()  
  
# 查询数据  
stocks = session.query(Stock).all()  
for stock in stocks:  
    print(stock)  
  
# 关闭会话  
session.close()

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值