引言SQLite是一款轻量级的数据库管理系统,常用于小型应用和嵌入式系统。Python是一种广泛使用的编程语言,具有简单易学、功能强大的特点。本文将介绍如何将SQLite与Python集成,通过实战案...
SQLite是一款轻量级的数据库管理系统,常用于小型应用和嵌入式系统。Python是一种广泛使用的编程语言,具有简单易学、功能强大的特点。本文将介绍如何将SQLite与Python集成,通过实战案例,帮助您高效地进行数据库操作。
SQLite是一款开源的数据库管理系统,由D. Richard Hipp在2000年开发。它具有以下特点:
由于SQLite是轻量级数据库,因此无需安装。您只需下载SQLite的源代码或预编译的二进制文件即可使用。
Python内置了sqlite3模块,可以直接进行SQLite数据库操作。以下是sqlite3模块的基本用法:
import sqlite3
# 连接数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 创建表
cursor.execute('''CREATE TABLE IF NOT EXISTS students (id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER)''')
# 插入数据
cursor.execute("INSERT INTO students (name, age) VALUES ('Alice', 20)")
cursor.execute("INSERT INTO students (name, age) VALUES ('Bob', 22)")
# 查询数据
cursor.execute("SELECT * FROM students")
rows = cursor.fetchall()
for row in rows: print(row)
# 关闭连接
conn.close()SQLAlchemy是一个Python SQL工具包和对象关系映射器(ORM)。使用SQLAlchemy可以更方便地进行数据库操作。
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# 定义模型
Base = declarative_base()
class Student(Base): __tablename__ = 'students' id = Column(Integer, primary_key=True) name = Column(String) age = Column(Integer)
# 创建数据库引擎
engine = create_engine('sqlite:///example.db')
Base.metadata.create_all(engine)
# 创建会话
Session = sessionmaker(bind=engine)
session = Session()
# 添加数据
student = Student(name='Alice', age=20)
session.add(student)
session.commit()
# 查询数据
students = session.query(Student).all()
for student in students: print(student.name, student.age)
# 关闭会话
session.close()以下是一个简单的学生信息管理系统,包括学生信息的添加、查询、修改和删除。
from sqlalchemy import create_engine, Column, Integer, String, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relationship
# 定义模型
Base = declarative_base()
class Student(Base): __tablename__ = 'students' id = Column(Integer, primary_key=True) name = Column(String) age = Column(Integer) courses = relationship('Course', back_populates='student')
class Course(Base): __tablename__ = 'courses' id = Column(Integer, primary_key=True) name = Column(String) student_id = Column(Integer, ForeignKey('students.id')) student = relationship('Student', back_populates='courses')
# 创建数据库引擎
engine = create_engine('sqlite:///example.db')
Base.metadata.create_all(engine)
# 创建会话
Session = sessionmaker(bind=engine)
session = Session()
# 添加学生
student = Student(name='Alice', age=20)
session.add(student)
session.commit()
# 添加课程
course = Course(name='Math', student=student)
session.add(course)
session.commit()
# 查询学生
students = session.query(Student).all()
for student in students: print(student.name, student.age)
# 修改学生信息
student = session.query(Student).filter_by(name='Alice').first()
student.age = 21
session.commit()
# 删除学生
session.delete(student)
session.commit()
# 关闭会话
session.close()以下是一个简单的电商购物车示例,包括商品的添加、删除、修改数量和计算总价等功能。
from sqlalchemy import create_engine, Column, Integer, String, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relationship
# 定义模型
Base = declarative_base()
class Product(Base): __tablename__ = 'products' id = Column(Integer, primary_key=True) name = Column(String) price = Column(Float)
class Cart(Base): __tablename__ = 'carts' id = Column(Integer, primary_key=True) product_id = Column(Integer, ForeignKey('products.id')) quantity = Column(Integer) product = relationship('Product')
# 创建数据库引擎
engine = create_engine('sqlite:///example.db')
Base.metadata.create_all(engine)
# 创建会话
Session = sessionmaker(bind=engine)
session = Session()
# 添加商品
product = Product(name='Apple', price=0.5)
session.add(product)
session.commit()
# 添加购物车
cart = Cart(product_id=product.id, quantity=10)
session.add(cart)
session.commit()
# 计算总价
total_price = sum(c.quantity * c.product.price for c in session.query(Cart).all())
print(total_price)
# 删除商品
session.delete(product)
session.commit()
# 关闭会话
session.close()本文介绍了SQLite与Python集成的常用方法,并通过实战案例展示了如何进行数据库操作。通过学习本文,您将能够轻松掌握SQLite与Python集成,高效地进行数据库操作。