Python에서 SQL Server 데이터 사용
3862 단어 pyhtonsqlserversqlalchemy
Primero si solo necesitas consumir datos mediante Consulta sql o realizar pequeñas modificaciones te recomiendo Pyodbc, este conector no 단독 te funciona para SQL Server, puedes utilizarlo con MySql, Access, Oracle, PostgreSQL 등. Lograr conectar tu base de datos mediante ODBC es bastante fácil 다음과 같이 계속됩니다.
import pyodbc
connection = pyodbc.connect(f'''{SU_DRIVER};SERVER={ip_server};port=1433;
DATABASE={db_name};UID={user_name};
PWD={password};Mars_Connection=Yes;
TrustServerCertificate=yes;''')
cursor = connection.cursor()
#Consulta para obtener todos los usuarios de la base de datos
consulta = f"""select * from users”””
cursor.execute(consulta)
data = cursor.fetchall()
En el segundo escenario necesitamos herramientas mas potentes y ahí es donde los ORMs como SQLAlchemy y Peewee nos ayudan en nuestra tarea de optimizarconsultas, ya sea que necesitamos que nuestra aplicación consuma datos SQL Server o que la base de datos de nuestro proyecto se encuentre en dicho motor de base de datos, SQLAlchemy es el ORM que prefieren la gran mayoría de empresas para trabajar con datos no solamente SQL Server si no con MySql, Mariadb, Oracle, Postgresql, Firebird etc.
SQLAlchemy es un Mapeador Relacional de Objetos ORM (por sus siglas en ingles) esto nos permite crear clases como Producto y Orden y que ambos tengan una lista relacional de instancias, a diferencia de Pyodbc para aprovechar todo el poder de la herramienta debemos de crear clases y establecer las relaciones entre ellas, si existen atributos que no son necesarios para nosotros no es necesario definirlos en el modelo(de momento). El siguiente código es un ejemplo para definir la tabla Users y establecer una conxión con la base de datos.
from sqlalchemy import select
from sqlalchemy import create_engine
from sqlalchemy import Column
from sqlalchemy import ForeignKey
from sqlalchemy import Integer
from sqlalchemy import String
from sqlalchemy.orm import Session
from sqlalchemy.orm import declarative_base
from sqlalchemy.orm import relationship
#Linea de conexion
engine = create_engine( f'mssql+pyodbc://{user}:{password} @{ip_server}/{base_datos}?{driver} ',
connect_args = {
'TrustServerCertificate':'yes',
'Mars_Connection':'yes'
})
Base = declarative_base()
#Creamos la instancia de la sesión de nuestro servidor
session = Session(engine)
#Definimos la clase usuario con los atributos que necesitamos
class User(Base):
__tablename__ = "users"
user_name = Column(String(15), primary_key=True)
name = Column(String(30))
email = Column(String(100))
#Representacion del objeto
def __repr__(self):
return f"User(user_name={self.user_name!r}, name={self.name!r}”
#Realiza la consulta sql
stmt = select(User)
for user in session.scalars(stmt):
print(user)
A Pesar que el código tiene mas líneas que la versión de Pyodbc, con solo cambiar la línea de conexion a otro motor de base de datos nuestro código y Consultas seguirían funcionando de la misma forma.
Estaré escribiendo mas sobre SQLAlchemy en los siguientes 게시물.
Reference
이 문제에 관하여(Python에서 SQL Server 데이터 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/edsantoshn/consumir-datos-de-sql-server-en-python-1ibm텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)