모든 데이터베이스에 대한 READ 작업은 데이터베이스에서 유용한 정보를 가져오는 것을 의미합니다. 데이터베이스 연결이 설정되면 이 데이터베이스에 쿼리할 준비가 됩니다. fetchone()을 사용할 수 있습니다. 단일 레코드를 가져오는 메소드 또는 fetchall() 데이터베이스 테이블에서 여러 값을 가져오는 방법입니다. 페원() − 쿼리 결과 집합의 다음 행을 가져옵니다. 결과 집합은 커서 개체를 사용하여 테이블을 쿼리할 때 반환되는 개체입니다. fetchall() − 결과 집합의 모든 행을 가져옵니다. 결과 집합에서 일부 행이
모든 데이터베이스에 대한 업데이트 작업은 데이터베이스에서 이미 사용 가능한 하나 이상의 레코드를 업데이트하는 것을 의미합니다. 다음 절차는 SEX가 M인 모든 레코드를 업데이트합니다. 여기에서 모든 남성의 AGE를 1년 늘립니다. 예 #!/usr/bin/python import MySQLdb # Open database connection db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # p
데이터베이스에서 일부 레코드를 삭제하려면 DELETE 작업이 필요합니다. 다음은 AGE가 20 이상인 EMPLOYEE의 모든 레코드를 삭제하는 절차입니다. - 예 #!/usr/bin/python import MySQLdb # Open database connection db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # prepare a cursor object using cursor() met
트랜잭션은 데이터 일관성을 보장하는 메커니즘입니다. 트랜잭션에는 다음 네 가지 속성이 있습니다. - 원자성 − 거래가 완료되거나 아무 일도 일어나지 않습니다. 일관성 − 트랜잭션은 일관된 상태에서 시작하고 시스템을 일관된 상태로 유지해야 합니다. 격리 − 트랜잭션의 중간 결과는 현재 트랜잭션 외부에서 볼 수 없습니다. 내구성 − 트랜잭션이 커밋되면 시스템 장애가 발생한 후에도 효과가 지속됩니다. Python DB API 2.0은 트랜잭션을 커밋하거나 롤백하는 두 가지 방법을 제공합니다. 예 트랜잭션을 구현하는 방법을 이미 알
커밋 커밋은 변경 사항을 완료하기 위해 데이터베이스에 녹색 신호를 보내는 작업이며 이 작업 후에는 변경 사항을 되돌릴 수 없습니다. 다음은 commit을 호출하는 간단한 예입니다. 방법. db.commit() 롤백 하나 이상의 변경 사항에 만족하지 않고 해당 변경 사항을 완전히 되돌리려면 rollback()을 사용하세요. 방법. 다음은 rollback()을 호출하는 간단한 예입니다. 방법. db.rollback()
데이터베이스 연결을 끊으려면 close() 메서드를 사용하십시오. db.close() 사용자가 close() 메서드를 사용하여 데이터베이스에 대한 연결을 닫으면 처리되지 않은 트랜잭션이 DB에 의해 롤백됩니다. 그러나 DB 하위 수준 구현 세부 정보에 의존하는 대신 응용 프로그램에서 명시적으로 커밋 또는 롤백을 호출하는 것이 좋습니다.
많은 오류 소스가 있습니다. 몇 가지 예는 실행된 SQL 문의 구문 오류, 연결 실패 또는 이미 취소되거나 완료된 명령문 핸들에 대한 fetch 메소드 호출입니다. DB API는 각 데이터베이스 모듈에 존재해야 하는 여러 오류를 정의합니다. 다음 표에는 이러한 예외가 나열되어 있습니다. 시니어 번호 예외 및 설명 1 경고 치명적이지 않은 문제에 사용됩니다. StandardError를 서브클래싱해야 합니다. 2 오류 오류에 대한 기본 클래스입니다. StandardError를 서브클래싱해야 합니다. 3 인터페이스 오
Python을 사용하여 문자 메시지를 보내면 모든 내용이 단순 텍스트로 처리됩니다. 텍스트 메시지에 HTML 태그를 포함하더라도 간단한 텍스트로 표시되며 HTML 구문에 따라 HTML 태그의 서식이 지정되지 않습니다. 그러나 Python은 HTML 메시지를 실제 HTML 메시지로 보낼 수 있는 옵션을 제공합니다. 전자 메일 메시지를 보내는 동안 HTML 전자 메일을 보낼 Mime 버전, 콘텐츠 유형 및 문자 집합을 지정할 수 있습니다. 예시 다음은 HTML 콘텐츠를 이메일로 보내는 예제입니다. 한 번 시도해 보세요 - #!/us
혼합 콘텐츠가 포함된 이메일을 보내려면 콘텐츠 유형을 설정해야 합니다. multipart/mixed 헤더 . 그런 다음 경계 내에서 텍스트 및 첨부 파일 섹션을 지정할 수 있습니다. . 경계는 두 개의 하이픈으로 시작하고 그 뒤에 고유 번호가 옵니다. 이 번호는 전자 메일의 메시지 부분에 나타날 수 없습니다. 이메일의 마지막 섹션을 나타내는 마지막 경계도 두 개의 하이픈으로 끝나야 합니다. 첨부 파일은 pack(m)으로 인코딩해야 합니다. 전송하기 전에 base64로 인코딩하는 기능입니다. 예시 다음은 /tmp/test.txt
다른 스레드를 생성하려면 스레드 모듈에서 사용할 수 있는 다음 메서드를 호출해야 합니다. - thread.start_new_thread ( function, args[, kwargs] ) 이 메서드 호출을 사용하면 Linux와 Windows 모두에서 새 스레드를 빠르고 효율적으로 생성할 수 있습니다. 메서드 호출이 즉시 반환되고 자식 스레드가 시작되고 전달된 인수 목록으로 함수를 호출합니다. 함수가 반환되면 스레드가 종료됩니다. 여기에서 args는 인수의 튜플입니다. 인수를 전달하지 않고 함수를 호출하려면 빈 튜플을 사용합니다
Python 2.4에 포함된 최신 스레딩 모듈은 이전 섹션에서 논의한 스레드 모듈보다 훨씬 강력하고 높은 수준의 스레드 지원을 제공합니다. threading 모듈은 thread 모듈의 모든 메소드를 노출하고 몇 가지 추가 메소드를 제공합니다 - threading.activeCount() − 활성 스레드 개체의 수를 반환합니다. threading.currentThread() − 호출자의 스레드 컨트롤에 있는 스레드 개체의 수를 반환합니다. threading.enumerate() − 현재 활성화된 모든 스레드 개체의 목록을 반환합니
Python과 함께 제공되는 스레딩 모듈에는 스레드를 동기화할 수 있는 구현하기 쉬운 잠금 메커니즘이 포함되어 있습니다. 새 잠금을 반환하는 Lock() 메서드를 호출하여 새 잠금이 생성됩니다. 새 잠금 개체의 획득(차단) 메서드는 스레드가 동기적으로 실행되도록 하는 데 사용됩니다. 선택적 차단 매개변수를 사용하면 스레드가 잠금을 획득하기 위해 대기하는지 여부를 제어할 수 있습니다. 블로킹이 0으로 설정되면 스레드는 잠금을 획득할 수 없는 경우 0 값으로 즉시 반환되고 잠금을 획득한 경우 1을 반환합니다. 블로킹이 1로 설정되면
대기열 모듈을 사용하면 특정 수의 항목을 보유할 수 있는 새 대기열 개체를 생성할 수 있습니다. Queue를 제어하는 방법은 다음과 같습니다 - get() − get()은 대기열에서 항목을 제거하고 반환합니다. put() − put은 항목을 대기열에 추가합니다. qsize() − qsize()는 현재 대기열에 있는 항목 수를 반환합니다. 빈() - empty()는 대기열이 비어 있으면 True를 반환합니다. 그렇지 않으면 거짓입니다. 전체() - full()은 대기열이 가득 차면 True를 반환합니다. 그렇지 않으면 거짓입니다
SAX는 이벤트 기반 XML 구문 분석을 위한 표준 인터페이스입니다. SAX로 XML을 구문 분석하려면 일반적으로 xml.sax.ContentHandler를 서브클래싱하여 고유한 ContentHandler를 생성해야 합니다. ContentHandler는 XML 풍미의 특정 태그와 속성을 처리합니다. ContentHandler 객체는 다양한 구문 분석 이벤트를 처리하는 메서드를 제공합니다. 소유하는 파서는 XML 파일을 파싱할 때 ContentHandler 메소드를 호출합니다. startDocument 및 endDocument 메
문서 개체 모델(DOM)은 XML 문서에 액세스하고 수정하기 위한 W3C(World Wide Web Consortium)의 교차 언어 API입니다. DOM은 랜덤 액세스 애플리케이션에 매우 유용합니다. SAX를 사용하면 한 번에 문서의 한 비트만 볼 수 있습니다. 하나의 SAX 요소를 보고 있다면 다른 요소에 액세스할 수 없습니다. 다음은 XML 문서를 빠르게 로드하고 xml.dom 모듈을 사용하여 minidom 개체를 만드는 가장 쉬운 방법입니다. minidom 개체는 XML 파일에서 DOM 트리를 빠르게 생성하는 간단한 파서
Tkinter는 Python용 표준 GUI 라이브러리입니다. Tkinter와 결합된 Python은 GUI 애플리케이션을 생성하는 빠르고 쉬운 방법을 제공합니다. Tkinter는 Tk GUI 툴킷에 대한 강력한 객체 지향 인터페이스를 제공합니다. Tkinter를 사용하여 GUI 응용 프로그램을 만드는 것은 쉬운 작업입니다. 다음 단계를 수행하기만 하면 됩니다. - Tkinter 모듈을 가져옵니다. GUI 애플리케이션 메인 창을 만듭니다. 위에 언급된 위젯 중 하나 이상을 GUI 애플리케이션에 추가합니다. 기본 이벤트 루프를 입력하
다음 순열 방법을 구현하려고 한다고 가정합니다. 이 방법은 숫자를 사전순으로 다음으로 큰 숫자 순열로 재정렬합니다. 이러한 정렬이 불가능한 경우 이 메서드는 가능한 가장 낮은 순서로 재배열합니다(즉, 실제로는 오름차순으로 정렬됨). 교체는 제자리에 있어야 하며 추가 메모리를 사용하지 마십시오. 예를 들어 입력이 왼쪽 열에 있고 해당 출력이 오른쪽 열에 있는 경우 1,2,3 → 1,3,2 3,2,1 → 1,2,3 1,1,5 → 1,5,1 단계를 살펴보겠습니다 - 찾음 :=false, i :=배열의 길이
후보 번호 집합(모든 요소가 고유함)과 대상 번호가 있다고 가정합니다. 후보 번호가 주어진 목표와 합해지는 후보에서 모든 고유한 조합을 찾아야 합니다. 동일한 반복 번호는 후보자 중에서 무제한으로 선택할 수 있습니다. 따라서 요소가 [2,3,6,7]이고 대상 값이 7이면 가능한 출력은 [[7], [2,2,3]]입니다. 단계를 살펴보겠습니다 - 우리는 이것을 재귀적으로 해결할 것입니다. 재귀 함수의 이름은 solve()입니다. 이것은 결과를 저장하기 위한 배열, 레코드를 유지하기 위한 하나의 맵, 대상 값 및 고유한 요소 목록
음이 아닌 정수 배열이 있다고 가정합니다. 우리는 처음에 배열의 첫 번째 인덱스에 위치합니다. 주어진 배열의 각 요소는 해당 위치에서 최대 점프 길이를 나타냅니다. 마지막 인덱스에 도달할 수 있는지 여부를 결정해야 합니다. 따라서 배열이 [2,3,1,1,4]와 같으면 출력은 true가 됩니다. 이것은 위치 0에서 위치 1로 한 단계 점프한 다음 위치 1에서 끝까지 세 단계 점프하는 것과 같습니다. 단계를 살펴보겠습니다 - n :=배열 A의 길이 – 1 i:=n – 1, -1까지 n이면 n :=i n =0이면 true를 반환
구간 모음이 있다고 가정하고 겹치는 구간을 모두 병합해야 합니다. 따라서 간격이 [[1,3], [2,6], [8,10], [15,18]]과 같으면 병합 후 간격은 [[1,6],[8,10 ],[15,18]]. 겹치는 두 개의 간격이 있기 때문입니다. 간격은 [1,3]과 [2,6]이며 이들은 [1,6]으로 병합됩니다. 단계를 살펴보겠습니다 - 간격 목록 길이가 0이면 빈 목록을 반환합니다. 빠른 정렬 메커니즘을 사용하여 간격 목록 정렬 stack :=빈 스택, 스택에 간격[0] 삽입 i의 경우 범위 1에서 간격 길이 – 1 last