데이터베이스 작업 pymysql 포장 과정 (중급)

 

이전에는, 다른 하나는 계속 추가 할 수 있습니다 약간의 간단한 포장은 기초, 만 만 쿼리를 작성하기 위해 여기에 사용 된 일반적인 문의입니다

다음과 같이 코드입니다 :

 

수입 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를

추천

출처www.cnblogs.com/yongzhuang/p/12229003.html