Python
db 연결하는 python 코드
크레비즈
2025. 3. 10. 23:10
Windsurf 가 짜준 postgresql db 에 연결하는 python 코드입니다.
설명과 로그를 상세하게 만들어줬네요.
import psycopg2
from psycopg2 import OperationalError
import sys
print(f"Python version: {sys.version}")
print("Attempting to import psycopg2...")
print(f"psycopg2 version: {psycopg2.__version__}")
def connect_to_postgres():
"""
Connect to PostgreSQL database using the provided credentials
"""
try:
print("Starting connection process...")
# Connection parameters
db_params = {
"host": "localhost",
"port": "5432",
"database": "postgres",
"user": "postgres",
"password": "1qaz2wsx"
}
print(f"Using connection parameters: {db_params}")
# Establish connection
print("Attempting to connect...")
connection = psycopg2.connect(**db_params)
# Create a cursor
cursor = connection.cursor()
# Print PostgreSQL version
cursor.execute("SELECT version();")
db_version = cursor.fetchone()
print(f"Connected to PostgreSQL database!")
print(f"PostgreSQL version: {db_version[0]}")
return connection
except OperationalError as e:
print(f"Error connecting to PostgreSQL database: {e}")
return None
except Exception as e:
print(f"Unexpected error: {e}")
return None
def execute_query(connection, query):
"""
Execute a query on the PostgreSQL database
"""
try:
print(f"Executing query: {query}")
cursor = connection.cursor()
cursor.execute(query)
if query.strip().upper().startswith("SELECT"):
results = cursor.fetchall()
print(f"Query results: {results}")
return results
else:
connection.commit()
print(f"Query executed successfully. Rows affected: {cursor.rowcount}")
return f"Query executed successfully. Rows affected: {cursor.rowcount}"
except Exception as e:
print(f"Error executing query: {e}")
return None
def close_connection(connection):
"""
Close the database connection
"""
if connection:
print("Closing database connection...")
connection.close()
print("Database connection closed.")
if __name__ == "__main__":
# Connect to the database
print("Attempting to connect to database...")
conn = connect_to_postgres()
if conn:
# Example: Execute a simple query
query = "SELECT current_database(), current_user;"
print(f"Executing query: {query}")
results = execute_query(conn, query)
if results:
print("\nQuery results:")
for row in results:
print(f"Database: {row[0]}, User: {row[1]}")
# Close the connection
close_connection(conn)
결과입니다.
Python version: 3.12.2 (tags/v3.12.2:6abddd9, Feb 6 2024, 21:26:36) [MSC v.1937 64 bit (AMD64)]
Attempting to import psycopg2...
psycopg2 version: 2.9.10 (dt dec pq3 ext lo64)
Attempting to connect to database...
Starting connection process...
Using connection parameters: {'host': 'localhost', 'port': '5432', 'database': 'postgres', 'user': 'postgres', 'password': '1qaz2wsx'}
Attempting to connect...
Connected to PostgreSQL database!
PostgreSQL version: PostgreSQL 17.4 on x86_64-windows, compiled by msvc-19.42.34436, 64-bit
Executing query: SELECT current_database(), current_user;
Executing query: SELECT current_database(), current_user;
Query results: [('postgres', 'postgres')]
Query results:
Database: postgres, User: postgres
Closing database connection...
Database connection closed.