Код: Выделить всё
import pandas as pd
from PIL import Image
from sqlalchemy import create_engine
from sqlalchemy.pool import NullPool
from dotenv import load_dotenv
import socks
import socket
import os
import io
load_dotenv()
CLIENT_ID = os.getenv("CLIENT_ID")
TENANT_ID = os.getenv("TENANT_ID")
CLIENT_SECRET = os.getenv("CLIENT_SECRET")
DB_SERVER = os.getenv("DB_SERVER")
DB_NAME = os.getenv("DB_NAME")
DB_DRIVER = os.getenv("DB_DRIVER")
DB_TIMEOUT = os.getenv("DB_TIMEOUT")
QUOTAGUARD_URL = os.getenv("QUOTAGUARD_URL")
if QUOTAGUARD_URL:
proxy_protocol, proxy_auth_host = QUOTAGUARD_URL.split("://")
proxy_auth, proxy_host_port = proxy_auth_host.split("@")
proxy_user, proxy_pass = proxy_auth.split(":")
proxy_host, proxy_port = proxy_host_port.split(":")
proxy_port = int(proxy_port)
socks.set_default_proxy(socks.SOCKS5, proxy_host, proxy_port, username=proxy_user, password=proxy_pass)
socket.socket = socks.socksocket
connection_string = (
"mssql+pyodbc:///?odbc_connect=" +
f"Driver={{{DB_DRIVER}}};" +
f"Server={DB_SERVER};" +
f"Database={DB_NAME};" +
"Encrypt=yes;" +
"TrustServerCertificate=yes;" +
f"Connection Timeout={DB_TIMEOUT};" +
"Authentication=ActiveDirectoryServicePrincipal;" +
f"UID={CLIENT_ID};" +
f"PWD={CLIENT_SECRET};" +
f"Authority Id={TENANT_ID};"
)
engine = create_engine(connection_string, poolclass=NullPool)
try:
query = "SELECT * FROM list_photos"
with engine.connect() as conn:
df = pd.read_sql(query, conn)
print("DataFrame loaded successfully!")
print(df.head())
except Exception as e:
print(f"Error: {e}")
for index, row in df.iterrows():
holdon = input("Press Enter to view the next image...")
try:
image = Image.open(io.BytesIO(row['photo']))
image.show()
except Exception as e:
print(f"Error displaying image at index {index}: {e}")
Я прочитал все документация здесь: https://devcenter.heroku.com/articles/q ... nterpreter
Также я пробовал разные методы подключения, что я делает не так?
Подробнее здесь: https://stackoverflow.com/questions/792 ... ure-sql-db