[100 días competentes en python] Día 34: Usar python para operar el uso de base de datos_ORM (SQLAlchemy)

Tabla de contenido

 Guía de columna 

1 descripción general de ORM

2 Descripción general de SQLAlchemy

3 ORM: usando SQLAlchemy

 3.1 Instalar SQLAlchemy:

3.2 Defina la clase del modelo de base de datos:

3.3 Crear una tabla de datos:

3.4 Insertar datos:

 3.5 Consulta de datos:

3.6 Actualizar datos:

3.7 Eliminar datos:

3.8 Cierre de la sesión:

4 combate

  Diseñe un sistema simple de gestión de bibliotecas.


 Guía de columna 

Dirección de suscripción de columna: https://blog.csdn.net/qq_35831906/category_12375510.html


1 descripción general de ORM

        ORM (Mapeo relacional de objetos) es una tecnología de programación utilizada para establecer una relación de mapeo entre una base de datos relacional y un lenguaje de programación orientado a objetos, de modo que las tablas y los registros de la base de datos se puedan mapear a objetos y clases en el lenguaje de programación. El objetivo de un ORM es simplificar las operaciones de la base de datos, lo que permite a los desarrolladores trabajar con bases de datos de forma orientada a objetos.

        En Python, hay varias bibliotecas ORM disponibles, la más conocida de las cuales es SQLAlchemy. SQLAlchemy proporciona una forma de establecer una relación de mapeo entre los objetos de Python y las tablas de la base de datos, lo que permite a los desarrolladores usar las clases de Python para operar las bases de datos.

Las ventajas de los ORM incluyen:

  1. Operaciones de bases de datos abstractas : ORM oculta los detalles de la base de datos subyacente y los desarrolladores pueden centrarse más en la lógica empresarial sin escribir consultas SQL complejas.

  2. Programación orientada a objetos : ORM permite a los desarrolladores procesar datos de manera orientada a objetos, lo que hace que el código sea más claro y fácil de mantener.

  3. Soporte de bases de datos cruzadas : las bibliotecas ORM generalmente brindan soporte en múltiples bases de datos, y los desarrolladores pueden cambiar fácilmente las bases de datos sin cambiar una gran cantidad de código.

  4. Creación y migración automática de tablas : la biblioteca ORM puede generar automáticamente tablas de bases de datos basadas en clases de Python definidas y admite la migración de bases de datos.

  5. Generador de consultas : las bibliotecas ORM generalmente proporcionan un generador de consultas que hace que escribir consultas sea más fácil e intuitivo.

  6. Gestión de transacciones : las bibliotecas ORM pueden ayudar a gestionar las transacciones para garantizar la coherencia y la integridad de los datos.

2 Descripción general de SQLAlchemy

        SQLAlchemy es un potente kit de herramientas Python SQL y una biblioteca de mapeo relacional de objetos (ORM) que permite a los desarrolladores usar el lenguaje de programación Python para interactuar con bases de datos relacionales. SQLAlchemy proporciona una forma flexible y poderosa de realizar operaciones como consultas SQL, inserciones, actualizaciones, eliminaciones, etc., y también admite la asignación de tablas de bases de datos a clases de Python, lo que permite a los desarrolladores manipular las bases de datos de forma orientada a objetos.

Estas son las características principales y la descripción general de SQLAlchemy:

  1. Funcionalidad ORM : una de las características principales de SQLAlchemy es su funcionalidad ORM. Le permite mapear tablas y registros de la base de datos definiendo clases de Python, transformando las operaciones de la base de datos en operaciones orientadas a objetos, haciendo que el código sea más intuitivo y fácil de mantener.

  2. Compatibilidad con múltiples bases de datos : SQLAlchemy admite múltiples bases de datos relacionales, incluidas MySQL, SQLite, PostgreSQL, Oracle, etc., lo que permite a los desarrolladores cambiar entre diferentes bases de datos sin cambiar la mayor parte del código.

  3. Flexibilidad : SQLAlchemy proporciona una variedad de formas de realizar operaciones SQL, incluidas consultas SQL sin procesar, generadores de consultas y consultas ORM. Esto permite a los desarrolladores elegir un método adecuado según sus necesidades.

  4. Administración de grupos de conexiones : SQLAlchemy admite la administración de grupos de conexiones, que pueden mantener un conjunto de conexiones de bases de datos entre aplicaciones y bases de datos para mejorar el rendimiento y la eficiencia.

  5. Gestión de transacciones : SQLAlchemy le permite utilizar la gestión de transacciones para garantizar la coherencia y la integridad de las operaciones de la base de datos, puede confirmar, revertir e interrumpir transacciones.

  6. Migración de bases de datos : SQLAlchemy proporciona la herramienta Alambic para la migración de bases de datos y la gestión de versiones, lo que hace que los cambios en la estructura de la base de datos sean más controlables.

  7. Múltiples asociaciones : SQLAlchemy admite múltiples tipos de asociación, como uno a muchos, muchos a muchos y otras asociaciones, lo que hace que la relación entre las bases de datos sea más clara.

  8. Consulta de tablas cruzadas : SQLAlchemy permite realizar uniones de tablas cruzadas en consultas ORM, lo que permite operaciones de consulta complejas.

  9. Optimización del rendimiento : SQLAlchemy proporciona varias opciones de optimización del rendimiento, como almacenamiento en caché, operaciones por lotes, etc., para mejorar la eficiencia del procesamiento de datos a gran escala.

  10. Amplia documentación y soporte de la comunidad : SQLAlchemy tiene una rica documentación oficial y una comunidad activa, lo que facilita el aprendizaje y la resolución de problemas.

        En conclusión, SQLAlchemy es un poderoso conjunto de herramientas de base de datos de Python adecuado para proyectos de todos los tamaños, desde pequeñas aplicaciones hasta grandes sistemas de nivel empresarial. Su flexibilidad, diseño orientado a objetos y múltiples funciones lo convierten en una de las herramientas preferidas por los desarrolladores de Python para realizar operaciones de base de datos.

3 ORM: usando SQLAlchemy

        Cuando usa un ORM en Python (como SQLAlchemy), define sus modelos de base de datos creando clases de Python y luego usa esos objetos de modelo para realizar operaciones de base de datos. Aquí hay un ejemplo detallado usando SQLAlchemy:

3.1  Instalar SQLAlchemy :

Primero, necesita instalar la biblioteca SQLAlchemy. Puedes instalarlo en la terminal con el siguiente comando:

pip install sqlalchemy

3.2 Defina la clase del modelo de base de datos :

Cree una clase de Python para definir el modelo de base de datos. Cada clase representa una tabla y los atributos de la clase representan las columnas de la tabla.

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

# 创建数据库连接
engine = create_engine('sqlite:///example.db')
Base = declarative_base()

# 定义模型类
class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

3.3 Crear una tabla de datos :

Cree una tabla de base de datos llamando create_all()a un método.

Base.metadata.create_all(engine)

3.4 Insertar datos :

Cree un objeto modelo, luego agréguelo a la sesión y confirme.

from sqlalchemy.orm import sessionmaker

# 创建会话
Session = sessionmaker(bind=engine)
session = Session()

# 添加数据
new_user = User(name='Alice', age=25)
session.add(new_user)
session.commit()

 3.5  Consulta de datos :

Utilice sesiones para consultar objetos de modelo.

# 查询数据
user = session.query(User).filter_by(name='Alice').first()
if user:
    print("User found:", user.name, user.age)
else:
    print("User not found")

3.6 Actualizar datos :

Las propiedades de los objetos del modelo se pueden actualizar y luego enviar la sesión para actualizar la base de datos.

user.age = 26
session.commit()

3.7 Eliminar datos :

Utilice delete()el método para eliminar el objeto modelo y luego envíe la sesión.

session.delete(user)
session.commit()

3.8   Cierre de la sesión :

Recuerde cerrar la sesión cuando haya terminado.

session.close()

4 combate

  Diseñe un sistema simple de gestión de bibliotecas.

Aquí hay un ejemplo completo de un sistema de administración de bibliotecas que usa SQLAlchemy: 

Asegúrese de que sqlalchemy esté instalado, pip install sqlalchemy

from sqlalchemy import create_engine, Column, Integer, String, ForeignKey
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

# 创建数据库连接
engine = create_engine('sqlite:///library.db')
Base = declarative_base()

# 定义作者模型类
class Author(Base):
    __tablename__ = 'authors'
    id = Column(Integer, primary_key=True)
    name = Column(String)

# 定义图书模型类
class Book(Base):
    __tablename__ = 'books'
    id = Column(Integer, primary_key=True)
    title = Column(String)
    author_id = Column(Integer, ForeignKey('authors.id'))

# 创建数据表
Base.metadata.create_all(engine)

# 创建会话
Session = sessionmaker(bind=engine)
session = Session()

# 添加作者
author1 = Author(name='J.K. Rowling')
author2 = Author(name='George Orwell')

session.add_all([author1, author2])
session.commit()

# 添加图书
book1 = Book(title='Harry Potter and the Sorcerer\'s Stone', author_id=author1.id)
book2 = Book(title='1984', author_id=author2.id)

session.add_all([book1, book2])
session.commit()

# 查询数据
print("Authors:")
authors = session.query(Author).all()
for author in authors:
    print("Author:", author.name)

selected_author = session.query(Author).filter_by(name='J.K. Rowling').first()
if selected_author:
    print("\nBooks by", selected_author.name)
    books = session.query(Book).filter_by(author_id=selected_author.id).all()
    for book in books:
        print("Book:", book.title)

# 关闭会话
session.close()

El ejemplo de código anterior demuestra cómo crear un sistema de administración de libros simple usando la biblioteca SQLAlchemy.

  1. Importar módulos requeridos : los módulos SQLAlchemy requeridos se importan al comienzo del código, incluida la creación de motores, la definición de clases de modelos, la creación de tablas de datos y sesiones, etc.

  2. Crear una conexión de base de datos y una clase base : create_enginecreó una conexión de base de datos SQLite usando una función y luego declarative_basecreó una clase base a través de Base.

  3. Definir clases de modelo : se definen dos clases de modelo, a saber, Author(Autor) y Book(Libro). Cada clase corresponde a una tabla y los atributos de la clase corresponden a las columnas de la tabla.

  4. Crear una tabla de datos : al llamar Base.metadata.create_all(engine)a un método, se crea una tabla de datos en la base de datos basada en la clase del modelo.

  5. Crear una sesión : use para sessionmakercrear una clase de sesión Sessiony luego Session()cree una instancia de sesión session.

  6. Adición de datos : se crearon dos instancias de autor, session.add_all()se agregaron a la sesión mediante y session.commit()se confirmaron en la base de datos a través de .

  7. Query data : session.query()Se consultó e imprimió la información del autor y del libro.

  8. Cerrar la sesión : una vez completadas todas las operaciones, session.close()los recursos se liberan al cerrar la sesión.

En general, este ejemplo muestra cómo usar SQLAlchemy para crear modelos de base de datos, realizar operaciones de base de datos, consultar datos y cerrar sesiones. Al usar ORM, puede convertir las operaciones de la base de datos en una forma orientada a objetos, lo que hace que el código sea más claro y fácil de mantener. Puede extender este ejemplo aún más, agregando más funcionalidad y complejidad según sea necesario.

 

Supongo que te gusta

Origin blog.csdn.net/qq_35831906/article/details/132271771
Recomendado
Clasificación