Python - PySide6/2.1 MySQL
8. 로그인
8. 로그인
2025.12.151. 목표더보기이 단계의 학습 목표기존 1~6단계 통합 예제에 로그인 확인 기능을 자연스럽게 확장해서 붙이기QLineEdit 비밀번호 모드와 QPushButton을 활용해 로그인 UI 만들기SELECT ... WHERE 조건문으로 사용자 아이디/비밀번호를 검사하는 로직 구현로그인 성공/실패를 QLabel, QMessageBox로 사용자에게 명확하게 피드백하기이미 구현한 MySQL 연결 예외 처리, 로그 기록 함수(handle_mysql_error, write_log_with_qt)를 재사용해 일관된 구조 유지이제 최종 통합 GUI는 다음 기능을 한 창에서 모두 처리합니다.1단계: MySQL 서버 연결 테스트2단계: 데이터베이스 생성3단계: users 테이블 생성4단계: 사용자 추가(INSERT)5단계: ..
7. Data 검색
7. Data 검색
2025.12.151. 목표더보기WHERE 조건문을 사용해 특정 사용자만 골라서 조회하는 방법을 익힌다.LIKE 연산자를 사용해 부분 검색 기능을 구현한다.검색어를 입력하는 QLineEdit와 검색 버튼(QPushButton)으로 검색 UI를 구성한다.검색 결과를 기존 QTableWidget에 다시 채워 넣어, 전체 조회와 검색 조회를 모두 지원한다.검색 실패, 접속 실패 등 예외 상황에서 적절한 메시지를 띄우고 로그를 남기는 흐름을 이해한다. 2. 전체 로직더보기import sysfrom PySide6.QtWidgets import ( QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout, QHBoxLayout, ..
6. Data 조회
6. Data 조회
2025.12.151. 목표더보기PySide6 폼에서 SELECT 문으로 users 데이터를 조회한 뒤, QTableWidget에 행 단위로 표시한다.QAbstractItemView 열거형을 사용해서 행 단위 선택, 읽기 전용 테이블을 설정하는 방법을 익힌다.오류 발생 시 QMessageBox와 QLabel, QFile + QTextStream으로 사용자 메시지와 로그를 남기는 흐름을 이해한다. 2. 전체 로직더보기1단계: 연결 테스트2단계: 데이터베이스 생성3단계: users 테이블 생성import sysfrom PySide6.QtWidgets import ( QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout, Q..
5. Data 삽입
5. Data 삽입
2025.12.151. 목표더보기이 단계의 학습 목표QLineEdit, QPushButton을 사용해 간단한 입력 폼을 구성할 수 있다.MySQL INSERT SQL 문을 이해하고 직접 작성할 수 있다.파라미터 바인딩을 사용해 SQL Injection을 방지할 수 있다.PySide6의 QMessageBox로 성공, 실패 메시지를 표시할 수 있다.QFile, QTextStream을 사용해 삽입 로그를 파일로 남길 수 있다.전제 조건데이터베이스 pyqtdb가 이미 생성되어 있다.pyqtdb 안에 users 테이블이 이미 생성되어 있다.(id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(150), password VARCHAR(150)) 2. 전체 로직더보기import sysfrom ..
4. Table 생성
4. Table 생성
2025.12.151. 목표더보기데이터베이스와 테이블의 차이를 구분할 수 있다.MySQL 클라이언트에서 USE, CREATE TABLE, SHOW TABLES, DESCRIBE 기본 명령을 사용할 수 있다.users 테이블 구조를 설계한다.id, username, password 컬럼과 타입 의미를 이해한다.PySide6 애플리케이션에서 버튼 클릭으로 users 테이블을 생성하는 코드를 작성하고,MySQL 수업에서 사용한 모델링과 비교하여 학습한다.QFile, QTextStream으로 테이블 생성 로그를 남겨 보고, MySQL 클라이언트로 테이블이 생성되었는지 확인한다.이후 단계인 데이터 INSERT, SELECT에서 이 users 테이블을 재사용할 수 있는 기반을 만든다. 2. 전체 로직더보기1단계: 연결 테스트2단계:..
3. DB 생성
3. DB 생성
2025.12.121. 목표더보기mysql.connector를 사용해 MySQL 서버에 접속한 뒤 데이터베이스를 생성하는 기본 흐름을 이해한다.PySide6 GUI 에서 데이터베이스 이름을 입력받아 CREATE DATABASE를 실행하는 기능을 구현한다.try ~ except ~ mc.Error 패턴으로 예외를 처리하는 방법을 익힌다.생성 성공과 실패를 QLabel, QMessageBox로 사용자에게 안내하는 패턴을 익힌다.1단계에서 만든 host, user, password 입력 UI 구조를 그대로 활용하여 단계별 확장 구조를 학습한다. 2. 전체 로직더보기# ...class MySqlDemoWindow(QWidget): def __init__(self, parent=None): super().__in..
2. DB 연결
2. DB 연결
2025.12.121. 목표더보기MySQL Connector/Python 라이브러리 설치 방법을 이해하고 직접 설치해 본다.host, user, password, database로 구성되는 MySQL 연결 문자열 개념을 이해한다.PySide6로 간단한GUI 설정 창을 만들고 MySQL 접속 정보를 입력받는다.mysql.connector를 사용해 MySQL 서버 및 선택한 데이터베이스에 연결해 본다.try except 예외처리 사용해서 예외를 안전하게 처리하는 패턴을 익힌다.QLabel과 QMessageBox로 연결 성공, 실패, 오류를 한글로 안내하는 방법을 복습힌다. 2. 전체 로직더보기import sysfrom PySide6.QtWidgets import ( QApplication, QWidget, Q..
1. DB 연동 개요
1. DB 연동 개요
2025.12.121. 간략 비교더보기MySQL 연동 방법 설명 실제 동작 위치 MySQL Connector/PythonPython 에서 MySQL 서버와 직접 통신에 필요한 기능을제공하는 범용 연결 도구Python 가상 환경(pip로 설치)QSqlDatabase(PySide6/QtSql)(Qt GUI 전용) Qt에서 제공하는 DB 연결 도구Qt GUI와 데이터 바인딩 가능한 Model 제공Qt PySide6 런타임 내부AWS RDS(MySQL)AWS 가 제공하는 클라우드형 MySQL 서버MySQL 서버 자체가 클라우드에 존재하는 형태AWS 클라우드 상(EC2와 별도) 2. 로컬 MySQL + MySQL Connector/Python 예제더보기2.1 라이브러리 설치pip install mysql-connector-pyt..