푸터 콘텐츠로 바로가기
PYTHON 도움말

sqlite3 Python (개발자를 위한 작동 방식)

Python의 sqlite3 모듈은 SQLite 데이터베이스와 상호 작용하는 방법을 제공합니다. Python 표준 라이브러리의 일부이므로 사용하기 위해 추가로 설치할 필요가 없습니다. 이제 그 기능을 살펴보고 몇 가지 코드 예제를 확인해 보겠습니다. 이 글 후반부에서는 Iron Software 에서 개발한 PDF 생성 라이브러리인 IronPDF 에 대해 자세히 살펴보겠습니다.

SQLite는 별도의 데이터베이스 서버 프로세스가 필요 없는 경량 디스크 기반 데이터베이스입니다. sqlite3 모듈은 SQL 인터페이스와 호환되는 환경을 제공하여 기존 데이터베이스 또는 새로 생성된 데이터베이스와 원활하게 상호 작용할 수 있도록 합니다. 이 모듈은 PEP 249에 설명된 DB-API 2.0 사양을 준수하도록 합니다.

기본 사용법

다음은 sqlite3를 시작하는 데 도움이 되는 간단한 예제와 여러 SQL 문입니다.

데이터베이스에 연결하기

먼저 SQLite 데이터베이스에 연결해야 합니다. 데이터베이스 파일이 없는 경우, 해당 파일이 생성됩니다.

import sqlite3

# Connect to the database (or create it if it doesn't exist)
conn = sqlite3.connect('example.db')
# Create a cursor object
cur = conn.cursor()
import sqlite3

# Connect to the database (or create it if it doesn't exist)
conn = sqlite3.connect('example.db')
# Create a cursor object
cur = conn.cursor()
PYTHON

테이블 만들기

CREATE TABLE SQL 문을 사용하여 새 데이터 테이블을 생성하십시오.

# Create a table using SQL statements
cur.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        age INTEGER
    )
''')
# Create a table using SQL statements
cur.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        age INTEGER
    )
''')
PYTHON

데이터 삽입

데이터베이스 테이블에 데이터를 삽입하는 방법은 다음과 같습니다.

# Insert data into the table
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('Alice', 30))

# Commit the transaction using the connection object
conn.commit()
# Insert data into the table
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('Alice', 30))

# Commit the transaction using the connection object
conn.commit()
PYTHON

데이터 조회

SQL 명령을 실행하고 데이터베이스 테이블에서 결과를 가져올 수 있습니다.

# Query the database
cur.execute('SELECT * FROM users')

# Fetch all results
rows = cur.fetchall()

# Print the results
for row in rows:
    print(row)
# Query the database
cur.execute('SELECT * FROM users')

# Fetch all results
rows = cur.fetchall()

# Print the results
for row in rows:
    print(row)
PYTHON

데이터 업데이트 중

표에 있는 기존 데이터를 업데이트하려면 다음 단계를 따르세요.

# Update data in the table
cur.execute('''
    UPDATE users SET age = ? WHERE name = ?
''', (31, 'Alice'))

# Commit the transaction
conn.commit()
# Update data in the table
cur.execute('''
    UPDATE users SET age = ? WHERE name = ?
''', (31, 'Alice'))

# Commit the transaction
conn.commit()
PYTHON

데이터 삭제

데이터베이스에서 이름이 Alice인 행의 데이터를 삭제하려면 다음 단계를 따르세요.

# Delete data from the table
cur.execute('''
    DELETE FROM users WHERE name = ?
''', ('Alice',))

# Commit the transaction
conn.commit()
# Delete data from the table
cur.execute('''
    DELETE FROM users WHERE name = ?
''', ('Alice',))

# Commit the transaction
conn.commit()
PYTHON

연결 종료

작업이 끝나면 커서와 연결을 모두 닫는 것을 잊지 마세요.

# Close the cursor and connection
cur.close()
conn.close()
# Close the cursor and connection
cur.close()
conn.close()
PYTHON

고급 기능

컨텍스트 관리자 사용

컨텍스트 관리자를 사용하면 연결을 자동으로 닫도록 처리할 수 있습니다.

with sqlite3.connect('example.db') as conn:
    cur = conn.cursor()
    cur.execute('SELECT * FROM users')
    rows = cur.fetchall()
    for row in rows:
        print(row)
with sqlite3.connect('example.db') as conn:
    cur = conn.cursor()
    cur.execute('SELECT * FROM users')
    rows = cur.fetchall()
    for row in rows:
        print(row)
PYTHON

거래 처리

SQLite는 트랜잭션을 지원하며, BEGIN, COMMIT, ROLLBACK을 사용하여 트랜잭션을 관리할 수 있습니다.

try:
    conn.execute('BEGIN')
    cur.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('Bob', 25))
    conn.commit()
except sqlite3.Error as e:
    conn.rollback()
    print(f"An error occurred: {e}")
try:
    conn.execute('BEGIN')
    cur.execute('INSERT INTO users (name, age) VALUES (?, ?)', ('Bob', 25))
    conn.commit()
except sqlite3.Error as e:
    conn.rollback()
    print(f"An error occurred: {e}")
PYTHON

IronPDF 소개합니다

sqlite3 Python (개발자를 위한 작동 방식): 그림 1 - IronPDF: Python PDF 라이브러리

IronPDF 는 HTML, CSS, 이미지 및 JavaScript 사용하여 PDF를 생성, 편집 및 서명하도록 설계된 강력한 Python 라이브러리입니다. 이 제품은 낮은 메모리 사용량으로 상업용 수준의 성능을 제공합니다. 주요 특징은 다음과 같습니다.

HTML을 PDF로 변환:

HTML 파일, HTML 문자열 및 URL을 PDF로 변환합니다. 예를 들어, Chrome PDF 렌더러를 사용하여 웹페이지를 PDF로 렌더링할 수 있습니다.

크로스 플랫폼 지원:

.NET Core, .NET Standard, .NET Framework 등 다양한 .NET 플랫폼과 호환됩니다. 이 프로그램은 윈도우, 리눅스, macOS를 지원합니다.

편집 및 서명:

속성을 설정하고, 암호 및 권한으로 보안을 강화하고, PDF에 디지털 서명을 적용하세요.

페이지 템플릿 및 설정:

머리글, 바닥글, 페이지 번호 및 조정 가능한 여백을 사용하여 PDF를 사용자 지정하세요. 반응형 레이아웃과 사용자 지정 용지 크기를 지원합니다.

표준 준수:

이 프로그램은 PDF/A 및 PDF/UA와 같은 PDF 표준을 준수하고, UTF-8 문자 인코딩을 지원하며, 이미지, CSS 및 글꼴과 같은 자산을 관리합니다.

IronPDF 와 SQLite3 Python을 사용하여 PDF 문서를 생성합니다.

import sqlite3
from ironpdf import * 

# Apply your license key
License.LicenseKey = "key"

# Connect to the sqlite database file (or create it if it doesn't exist)
conn = sqlite3.connect('example.db')

# Create a cursor object for database connection
cur = conn.cursor()

# Create a table SQL command 
cur.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        age INTEGER
    )
''')

# Insert data into the table
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('IronUser1', 30))
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('IronUser2', 31))
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('IronUser3', 25))
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('IronUser4', 28))

# Commit the transaction using the connection object
conn.commit()

# Query the database
cur.execute('SELECT * FROM users')

# Fetch all results
rows = cur.fetchall()

# Print the results
for row in rows:
    print(row)

# Update data in the table
cur.execute('''
    UPDATE users SET age = ? WHERE name = ?
''', (31, 'Alice'))

# Commit the transaction
conn.commit()    

# Delete data from the table
cur.execute('''
    DELETE FROM users WHERE name = ?
''', ('IronUser1',))

# Commit the transaction
conn.commit()

# Initialize PDF renderer
renderer = ChromePdfRenderer()

# Create a PDF from an HTML string using Python
content = "<h1>Awesome Iron PDF with Sqlite3</h1>"
content += "<p>table data</p>"

for row in rows:
    content += "<p>" + str(row) + "</p>"

# Close the cursor and connection
cur.close()
conn.close()

# Render the HTML as a PDF
pdf = renderer.RenderHtmlAsPdf(content)

# Export to a file
pdf.SaveAs("DemoSqlite3.pdf")
import sqlite3
from ironpdf import * 

# Apply your license key
License.LicenseKey = "key"

# Connect to the sqlite database file (or create it if it doesn't exist)
conn = sqlite3.connect('example.db')

# Create a cursor object for database connection
cur = conn.cursor()

# Create a table SQL command 
cur.execute('''
    CREATE TABLE IF NOT EXISTS users (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        age INTEGER
    )
''')

# Insert data into the table
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('IronUser1', 30))
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('IronUser2', 31))
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('IronUser3', 25))
cur.execute('''
    INSERT INTO users (name, age) VALUES (?, ?)
''', ('IronUser4', 28))

# Commit the transaction using the connection object
conn.commit()

# Query the database
cur.execute('SELECT * FROM users')

# Fetch all results
rows = cur.fetchall()

# Print the results
for row in rows:
    print(row)

# Update data in the table
cur.execute('''
    UPDATE users SET age = ? WHERE name = ?
''', (31, 'Alice'))

# Commit the transaction
conn.commit()    

# Delete data from the table
cur.execute('''
    DELETE FROM users WHERE name = ?
''', ('IronUser1',))

# Commit the transaction
conn.commit()

# Initialize PDF renderer
renderer = ChromePdfRenderer()

# Create a PDF from an HTML string using Python
content = "<h1>Awesome Iron PDF with Sqlite3</h1>"
content += "<p>table data</p>"

for row in rows:
    content += "<p>" + str(row) + "</p>"

# Close the cursor and connection
cur.close()
conn.close()

# Render the HTML as a PDF
pdf = renderer.RenderHtmlAsPdf(content)

# Export to a file
pdf.SaveAs("DemoSqlite3.pdf")
PYTHON

코드 설명

이 Python 프로그램은 SQLite 라이브러리를 사용하여 데이터베이스를 생성하고, 데이터를 삽입하고, 쿼리를 수행하고, 레코드를 업데이트하고, 레코드를 삭제하고, 마지막으로 IronPDF 사용하여 PDF 문서를 생성하는 방법을 보여줍니다.

  1. 라이브러리 가져오기:

    • sqlite3: SQLite 데이터베이스 작업을 위한 Python의 내장 모듈입니다.
    • ironpdf: PDF 생성을 가능하게 하는 IronPDF의 구성요소를 가져옵니다.
  2. 데이터베이스 연결:

    • 이름이 example.db인 SQLite 데이터베이스에 대한 연결을 설정합니다.
  3. 테이블 생성:

    • users SQLite 테이블을 정의하고 열로 id (INTEGER, PRIMARY KEY), name (TEXT, NOT NULL), age (INTEGER)을 포함합니다.
  4. 데이터 삽입:

    • 다수의 데이터 행을 users 테이블에 삽입합니다.
  5. 거래 확정:

    • 변경 사항을 데이터베이스에 저장하여 영구적으로 적용합니다.
  6. 데이터베이스 조회:

    • users 테이블에서 모든 행을 검색하기 위해 SELECT 문을 실행합니다.
  7. 데이터 업데이트:

    • 'Alice'라는 사용자의 age을 업데이트합니다.
  8. 데이터 삭제:

    • 'IronUser1'이라는 사용자를 users 테이블에서 삭제합니다.
  9. PDF 생성:

    • HTML 콘텐츠에서 PDF 문서를 생성하기 위해 IronPDF (ChromePdfRenderer)를 사용합니다.
    • 헤더와 테이블 데이터(데이터베이스에서 가져옴)를 결합하여 HTML 콘텐츠를 생성합니다.
    • PDF 문서를 DemoSqlite3.pdf으로 저장합니다.
  10. 연결 종료:
    • 자원을 해제하기 위해 커서 (cur)와 연결 (conn)을 닫습니다.

이 스크립트는 Python의 SQLite3 및 IronPDF 라이브러리를 사용하여 데이터베이스 설정부터 데이터 조작 및 PDF 생성에 이르는 전체 워크플로를 보여줍니다.

출력

sqlite3 Python (개발자를 위한 작동 방식): 그림 2 - 예제 콘솔 출력

PDF

sqlite3 Python (개발자를 위한 작동 방식): 그림 3 - sqlite를 사용한 IronPDF로 데이터 쿼리하여 생성된 예제 PDF 출력

IronPDF 라이선스

IronPDF 라이선스 키를 사용하여 실행됩니다. IronPDF for Python은 사용자가 구매 전에 다양한 기능을 테스트해 볼 수 있도록 무료 평가판 라이선스 키를 제공합니다.

라이선스 키를 여기에 입력하세요:

import {IronPdfGlobalConfig, PdfDocument} from "@ironsoftware/ironpdf";

// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
import {IronPdfGlobalConfig, PdfDocument} from "@ironsoftware/ironpdf";

// Apply your IronPDF license key
IronPdfGlobalConfig.getConfig().licenseKey = "Add Your key here";
JAVASCRIPT

결론

sqlite3 Python (개발자를 위한 작동 방식): 그림 4 - IronPDF 라이선싱 페이지

sqlite3 모듈은 Python에서 SQLite 데이터베이스를 다루는 데 사용할 수 있는 강력하고 사용하기 쉬운 도구입니다. Python 표준 라이브러리에 통합되어 있어 간단하고 복잡한 데이터베이스 작업을 편리하게 수행할 수 있습니다. IronPDF 평가판 라이선스를 제공합니다. 이후에, 라이선스는 $799에서 시작하여 위로 증가합니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해