Przejdź do treści stopki
POMOC DOTYCZąCA JęZYKA PYTHON

sqlite3 Python (jak to działa dla programistów)

Moduł sqlite3 w języku Python umożliwia interakcję z bazami danych SQLite. Jest to część standardowej biblioteki języka Python, więc nie trzeba instalować żadnych dodatkowych programów, aby z niej korzystać. Przyjrzyjmy się jego funkcjom i zobaczmy kilka przykładów kodu. W dalszej części tego artykułu omówimy IronPDF, bibliotekę do generowania plików PDF opracowaną przez firmę Iron Software.

SQLite to lekka, dyskowa baza danych, która nie wymaga oddzielnego procesu serwera bazy danych. Moduł sqlite3 zapewnia środowisko zgodne z interfejsem SQL, umożliwiające płynną interakcję z istniejącą lub nowo utworzoną bazą danych. Moduł ten wymusza specyfikację DB-API 2.0 opisaną w PEP 249.

Podstawowe zastosowanie

Oto prosty przykład i kilka instrukcji SQL, które pomogą Ci rozpocząć pracę z sqlite3.

Łączenie się z bazą danych

Najpierw musisz połączyć się z bazą danych SQLite. Jeśli plik bazy danych nie istnieje, zostanie wygenerowany:

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

Tworzenie tabeli

Użyj instrukcji SQL CREATE TABLE, aby utworzyć nową tabelę danych:

# 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

Wstawianie danych

Oto jak wstawić dane do tabeli bazy danych:

# 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

Wyszukiwanie danych

Możesz uruchamiać polecenia SQL i pobierać wyniki z tabeli bazy danych:

# 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

Aktualizacja danych

Aby zaktualizować istniejące dane w tabeli:

# 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

Usuwanie danych

Aby usunąć dane z wierszy bazy danych, w których występuje imię 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

Zamykanie połączenia

Pamiętaj, aby po zakończeniu zamknąć zarówno kursor, jak i połączenie:

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

Zaawansowane funkcje

Korzystanie z menedżerów kontekstu

Możesz użyć menedżerów kontekstu, aby automatycznie zamknąć połączenie:

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

Obsługa transakcji

SQLite obsługuje transakcje, a do ich zarządzania można używać poleceń BEGIN, COMMIT i 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

Przedstawiamy IronPDF

sqlite3 Python (Jak to działa dla programistów): Rysunek 1 – IronPDF: biblioteka PDF dla języka Python

IronPDF to potężna biblioteka języka Python przeznaczona do tworzenia, edytowania i podpisywania plików PDF przy użyciu HTML, CSS, obrazów i JavaScript. Oferuje wydajność na poziomie komercyjnym przy niewielkim zużyciu pamięci. Najważniejsze cechy to:

Konwersja HTML do PDF:

Konwertuj pliki HTML, ciągi znaków HTML i adresy URL na pliki PDF. Na przykład, renderuj stronę internetową jako plik PDF przy użyciu renderera PDF przeglądarki Chrome.

Obsługa wielu platform:

Kompatybilny z różnymi platformami .NET, w tym .NET Core, .NET Standard i .NET Framework. Obsługuje systemy Windows, Linux i macOS.

Redakcja i podpisanie:

Ustawiaj właściwości, dodawaj zabezpieczenia za pomocą haseł i uprawnień oraz stosuj podpisy cyfrowe w plikach PDF.

Szablony stron i ustawienia:

Dostosuj pliki PDF, dodając nagłówki, stopki, numery stron i regulowane marginesy. Obsługuje responsywne układy i niestandardowe rozmiary papieru.

Zgodność z normami:

Jest zgodny ze standardami PDF, takimi jak PDF/A i PDF/UA, obsługuje kodowanie znaków UTF-8 oraz zarządza zasobami, takimi jak obrazy, CSS i czcionki.

Generowanie dokumentów PDF przy użyciu IronPDF i SQLite3 w języku Python

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

Wyjaśnienie kodu

Ten program w języku Python pokazuje, jak używać biblioteki SQLite do tworzenia bazy danych, wstawiania do niej danych, wykonywania zapytań, aktualizowania rekordów, usuwania rekordów i wreszcie generowania dokumentu PDF przy użyciu IronPDF.

  1. Importowanie bibliotek:

    • sqlite3: Wbudowany moduł języka Python do pracy z bazami danych SQLite.
    • ironpdf: Importowanie komponentów z IronPDF, co umożliwia generowanie plików PDF.
  2. Łączenie się z bazą danych:

    • Nawiązuje połączenie z bazą danych SQLite o nazwie example.db.
  3. Tworzenie tabeli:

    • Definiuje tabelę SQLite users z kolumnami id (INTEGER, PRIMARY KEY), name (TEXT, NOT NULL) oraz age (INTEGER).
  4. Wstawianie danych:

    • Wstaw wiele wierszy danych do tabeli users.
  5. Potwierdzanie transakcji:

    • Zapisuje zmiany w bazie danych, aby były trwałe.
  6. Wysyłanie zapytań do bazy danych:

    • Wykonuje instrukcję SELECT w celu pobrania wszystkich wierszy z tabeli users.
  7. Aktualizacja danych:

    • Aktualizuje age użytkownika o nazwie "Alice".
  8. Usuwanie danych:

    • Usuwa użytkownika o nazwie "IronUser1" z tabeli users.
  9. Generowanie plików PDF:

    • Wykorzystuje IronPDF (ChromePdfRenderer) do tworzenia dokumentów PDF na podstawie treści HTML.
    • Łączy dane nagłówków i tabel (pobrane z bazy danych) z treścią HTML.
    • Zapisuje dokument PDF jako DemoSqlite3.pdf.
  10. Zamykanie połączeń:
    • Zamyka kursor (cur) i połączenie (conn) w celu zwolnienia zasobów.

Ten skrypt pokazuje kompletny przebieg pracy od konfiguracji bazy danych po przetwarzanie danych i generowanie plików PDF przy użyciu bibliotek SQLite3 i IronPDF w języku Python.

Wynik

sqlite3 Python (Jak to działa dla programistów): Rysunek 2 – Przykładowy wynik konsoli

PDF

sqlite3 Python (Jak to działa dla programistów): Rysunek 3 – Przykładowy plik PDF wygenerowany przez IronPDF z wykorzystaniem sqlite do wyszukiwania danych

Licencja IronPDF

IronPDF działa na podstawie klucza licencyjnego. IronPDF for Python oferuje bezplatną licencję probną, aby umożliwić użytkownikom przetestowanie jego rozbudowanych funkcji przed zakupem.

Umieść tutaj klucz licencyjny:

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

Wnioski

sqlite3 Python (Jak to działa dla programistów): Rysunek 4 – Strona licencji IronPDF

Moduł sqlite3 to potężne i łatwe w użyciu narzędzie do pracy z bazami danych SQLite w języku Python. Jego integracja z biblioteką standardową języka Python sprawia, że proste i złożone operacje na bazach danych stają się wygodne. IronPDF oferuje Licencję Trial. Następnie licencja zaczyna się od $799 i wyżej.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie