이전에는, 다른 하나는 계속 추가 할 수 있습니다 약간의 간단한 포장은 기초, 만 만 쿼리를 작성하기 위해 여기에 사용 된 일반적인 문의입니다
다음과 같이 코드입니다 :
수입 pymysql 에서 pymysql.cursors은 가져 DictCursor을 클래스 DBHandler (객체) : "" " 데이터베이스를 초기화 "" " #은 상속에 선택의 여지가 없다 연결도 상속 할 수 DEF __init__ (자체는, 호스트 = 없음, #의 연결 이름 = 3306 포트, #의 포트 사용자 = 없음, #의 사용자 이름 암호 = 없음, #의 암호 문자 집합 = 없음, # 할 수 없습니다 쓰기 UTF-8 쓰기 UTF-8 내부의 MySQL에 오류가 발생합니다 데이터베이스 = 없음, # 데이터베이스 라이브러리 이름 cursorClass = DictCursor, ** kwargs로) : self.connect = pymysql.connect ( 호스트 = 호스트, #의 연결 이름 포트 = 포트, #의 포트 사용자는 사용자, = #의 사용자 이름 암호 = 암호, #의 암호 문자 집합 = 캐릭터 세트, #는 쓰기 UTF-8 쓰기 UTF-8 내부의 MySQL에 오류가 발생합니다 수 없습니다 데이터베이스 = 데이터베이스, #을 데이터베이스 라이브러리 이름 cursorClass = cursorClass, # 사전 형식으로 데이터 ** kwargs로 ) # 커서 오브젝트 주요 만들기 ** ** self.cursor = self.connect.cursor () 데프 query_one (자기, 쿼리, 인수 = 없음) : "" " 데이터베이스 쿼리 데이터 : 파람 쿼리 : MySQL의 문을 실행 : 파람의 인수 : 쿼리 매개 변수와 튜플, 목록 및 사전 (문 통과 인수에) 함께 통과 "" " self.cursor.execute (쿼리, 인수) # 데이터베이스에 변경 사항 커밋 self.connect.commit () 반환 ) (self.cursor.fetchone를 데프 query_all (자기, 쿼리, 인수 = 없음) : "" " 모든 데이터에 대한 쿼리 데이터베이스 : 파람 쿼리 : MySQL의 문을 실행 : 파람의 인수 : 쿼리 매개 변수와 튜플, 목록 및 사전 (문 통과 인수에) 함께 통과 "" " self.cursor.execute (쿼리, 인수) # 데이터베이스에 변경 사항 커밋 self.connect.commit () 반환 ) (self.cursor.fetchall를 데프 쿼리 (자기, 쿼리, 인수 = 없음 = 하나 참) : "" " 주요 쿼리 데이터 : 파람 쿼리 : MySQL의 문을 실행 : 파람의 인수 : 쿼리 매개 변수와 튜플, 목록 및 사전 (문 통과 인수에) 함께 통과 : 파람은 하나 하나에 해당하는 경우 실행 query_one, 그렇지 않으면 실행 query_all "" " 경우 하나를 반환 self.query_one (쿼리, 인수) 반환 self.query_all (쿼리, 인수) 데프 가까운 (자기) : "" " 가까운 :반환: "" " # 닫기 커서 self.cursor.close () #의 데이터베이스에서 분리 self.connect.close () 경우 __name__ == ' __main__ ' : dB = DBHandler ( 호스트 = ' 127.0.0.1 ' , #의 연결 이름 포트 = 3306, #의 포트 사용자 = ' 루트 ' , #의 사용자 이름 암호 = ' 루트 ' , #의 암호 문자 집합 = ' UTF8 ' , #은 MySQL의에 있지 쓰기 UTF8을 작성 할 수 있습니다 UTF-8은 불평 데이터베이스 = ' pymysql_test ' #의 데이터베이스 라이브러리 이름 ) # 쿼리 SQL = ' 저자의에서 SELECT *를 ' SQL1= " 저자 선택 * 여기서 authorId % = S; " 인쇄 (db.query (SQL 번 = 거짓)) 프린트 (db.query (쿼리 = SQL1, 인수 = [1]))
# 연결 닫습니다
) (db.Close를