from ironpdf import *
# Instantiate Renderer
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
# Export to a file or Stream
pdf.SaveAs("output.pdf")
# Advanced Example with HTML Assets
# Load external html assets: Images, CSS and JavaScript.
# An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", r"C:\site\assets")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
peewee Python ((Wie es funktioniert: Ein Leitfaden für Entwickler))
Kannapat Udonpant
26. Februar 2025
Teilen Sie:
Einführung
Peewee ist ein kleines, ausdrucksstarkesORMdas darauf abzielt, die Interaktion mit der Datenbank in Python zu erleichtern. Es ist leichtgewichtig, einfach zu verwenden und vertrauenswürdig genug, um komplexe Abfragen oder Datenbankschemata zu unterstützen. Peewee unterstützt SQLite, MySQL und PostgreSQL mit einer intuitiven Syntax, was es sehr leicht erlernbar macht, und es damit bei Studenten und Fachleuten sehr beliebt wird.
IronPDF ist eine Python-Bibliothek, die vollständige, durchgängige Arbeit mit PDF-Dokumenten ermöglicht: Erstellen, Lesen, Bearbeiten und Verwalten. Mit Python .NET kann man IronPDF mit Python-Anwendungen verwenden und dadurch sehr starke PDF-Erzeugungsfähigkeiten ableiten. Diese Kombination ist daher sehr nützlich, um PDF-Berichte auf Grundlage von aus Datenbanken abgerufenen Daten zu erstellen.
Diese Integration kombiniert Peewee mit IronPDF, um Anwendungen von Python-Entwicklern zu erstellen, sodass effizientes Datenbankmanagement und Abfragen zusammen mit der Erstellung dynamischer, datengesteuerter PDF-Dokumente möglich sind. Diese Kombination bereitet einen perfekten Workflow von der Datenabfrage bis zur Berichtserstellung vor und bietet somit eine Reihe sehr leistungsstarker Werkzeuge für die Erstellung professioneller und automatisierter Dokumentationen. Beginnend mit einfachen Geschäftsberichten wie Rechnungen und bis hin zu komplexen Berichten bieten Peewee und IronPDF zusammen eine einwandfreie Lösung für datenbankgesteuerte PDF-Erzeugung in jeder Python-Anwendung.
Was ist PeeWee Python?
Peeweeist ein kleines, ausdrucksstarkes ORM für Python, um die Arbeit mit einer Datenbank zu erleichtern. Es erstellt Modelle einfach und ermöglicht es, gängige Abfragen wie Suchen, Hinzufügen, Aktualisieren und Löschen mehrerer Datensätze in der Datenbank einfach zu erstellen. Peewee könnte in vielen verschiedenen Anwendungsfällen verwendet werden, da es verschiedene Backends unterstützt: SQLite, MySQL und PostgreSQL.
Etwas, das an Peewee gefällt, ist seine Einfachheit und Leichtigkeit. Es ist für einen Entwickler sehr einfach, Modelle als Klassen in Python zu erstellen, während alle Abfragen gegen die Datenbank dank einer unkomplizierten API als Python-Code durchgeführt werden. Trotz dieser Einfachheit ist Peewee äußerst leistungsstark, da es Unterstützung für komplizierte Anfragen, Joins und komplexe Beziehungen bietet und Connection-Pooling unterstützt.
Die Flexibilität und das minimalistische Design machen Peewee für kleine Projekte und größere Anwendungen nützlich, bei denen Benutzerfreundlichkeit und schnelle Entwicklung entscheidend sind. Die Handhabung komplexer Datenbankinteraktionen mit sehr wenig Boilerplate-Code hat es zu einem attraktiven ORM für jeden Python-Entwickler gemacht.
Funktionen von Peewee Python
Peewee ist eine leichtgewichtige, ausdrucksstarke ORM-Bibliothek für Python, um einfach mit der Datenbank zu interagieren. Eine Reihe von wichtigen Funktionen sind unten aufgeführt:
Einfach und unkompliziert: Peewee verfügt über eine sehr einfache und intuitive API. Entwickler können Modelle mit all ihren normalen Attributen problemlos definieren und mithilfe von Python-Code einfach mit der Datenbank interagieren.
Mehrere Datenbanken: Es unterstützt SQLite, MySQL, PostgreSQL und CockroachDB.
Ausdrucksstarke Abfragesyntax: Peewee bietet eine saubere und ausdrucksstarke Syntax zum Abfragen von Datenbanken. Wir können die gleichen Abfrageoperationen wie Select, Create, Update und eine Delete-Abfrage verwenden, wodurch Entwickler komplexe Abfragen mit pythonischen Konstrukten schreiben können.
Modeldefinition: Man definiert Datenbankmodelle als Python-Klassen in Peewee. Die Felder der Klasse entsprechen den Datenbankspalten. Diese Definition stellt sicher, dass, wenn eine Änderung im Datenbankschema vorgenommen wird, gleichwertige Änderungen am Python-Code vorgenommen werden – und umgekehrt.
Beziehungen: Es unterstützt alle Beziehungen—einschließlich Fremdschlüssel, Eins-zu-Eins- und Viele-zu-Viele-Beziehungen—die beim Modellieren komplexer Daten benötigt werden.
Connection Pooling: Peewee verfügt über ein integriertes Connection Pooling, um die Leistung durch Wiederverwendung von Datenbankverbindungen zu verbessern.
Transaktionen: Atomare Transaktionen stellen sicher, dass eine Reihe von Datenbankoperationen ausgeführt wird - aber falls eine von ihnen fehlschlägt, werden alle zurückgesetzt, um die Gültigkeit Ihrer Daten zu erhalten.
Signale und Hooks: Peewee bietet Signale und Hooks für die Implementierung benutzerdefinierter Verhaltensweisen vor oder nach bestimmten Ereignissen, wie dem Speichern oder Löschen eines Datensatzes.
Migrationen: Darüber hinaus integriert dies Drittanbieterbibliotheken mit dem primären Peewee-migrate und verwaltet somit Datenbankschema-Migrationen. Dies wird beim reibungslosen Übergang zwischen den Versionen einer Datenbank helfen.
Erweiterbarkeit: Peewee kann leicht durch benutzerdefinierte Felder, Abfragen oder einige andere Funktionen erweitert werden, je nach den konkreten Anwendungsanforderungen.
Playhouse-Erweiterungen: Dieses Modul wird mit einer Vielzahl von Erweiterungen für das Playhouse geliefert, darunter Volltextsuche für SQLite, einige PostgreSQL-spezifische Funktionalitäten und einige Tools zur Verwaltung von Verbindungen.
Asynchrone Unterstützung: aiopeewee ist eine Erweiterung, die Peewee asynchrone Operationen unterstützt, geeignet für Hochleistungsanwendungen.
Erstellen und Konfigurieren von Peewee
Die folgenden Schritte helfen Ihnen, mit Peewee in jedem Python-Projekt zu beginnen, indem Sie eine einfache Anwendung mit Peewee ORM einrichten.
Peewee installieren
Zuerst installieren Sie Peewee mit pip:
pip install peewee
pip install peewee
PYTHON
Definieren Sie Ihre Modelle
Stellen Sie sicher, dass Sie Ihre Datenbankmodelle in einer Python-Datei namens app.py definieren. Hier werden wir aus Einfachheitsgründen dasselbe mit SQLite tun.
from peewee import SqliteDatabase, Model, CharField, IntegerField, ForeignKeyField
# Define the database connection
db = SqliteDatabase('my_database.db')
# Define a base model class
class BaseModel(Model):
class Meta:
database = db
# Define a User model
class User(BaseModel):
username = CharField(unique=True)
age = IntegerField()
# Define a model instance programmatically or we can define foreign or primary key
class Tweet(BaseModel):
user = ForeignKeyField(User, backref='tweets')
content = CharField()
# Create the tables
db.connect()
db.create_tables([User, Tweet])
from peewee import SqliteDatabase, Model, CharField, IntegerField, ForeignKeyField
# Define the database connection
db = SqliteDatabase('my_database.db')
# Define a base model class
class BaseModel(Model):
class Meta:
database = db
# Define a User model
class User(BaseModel):
username = CharField(unique=True)
age = IntegerField()
# Define a model instance programmatically or we can define foreign or primary key
class Tweet(BaseModel):
user = ForeignKeyField(User, backref='tweets')
content = CharField()
# Create the tables
db.connect()
db.create_tables([User, Tweet])
PYTHON
Daten einfügen
Jetzt fügen wir einige Daten zu unserer Datenbank hinzu.
def insert_data():
# Insert a new user
alice = User.create(username='Alice', age=30)
# Insert some tweets for Alice
Tweet.create(user=alice, content='Hello world!')
Tweet.create(user=alice, content='I love Peewee!')
bob = User.create(username='Bob', age=25)
Tweet.create(user=bob, content='This is Bob')
insert_data()
def insert_data():
# Insert a new user
alice = User.create(username='Alice', age=30)
# Insert some tweets for Alice
Tweet.create(user=alice, content='Hello world!')
Tweet.create(user=alice, content='I love Peewee!')
bob = User.create(username='Bob', age=25)
Tweet.create(user=bob, content='This is Bob')
insert_data()
PYTHON
Daten abfragen
Nun wollen wir etwas Code erstellen, um all diese Informationen aus unserer Datenbank abzurufen.
def query_data():
# Query to select multiple records
for user in User.select():
print(f'User: {user.username}, Age: {user.age}')
# instance matching query
for tweet in Tweet.select().join(User).where(User.username == 'Alice'):
print(f'{tweet.user.username} tweeted: {tweet.content}')
query_data()
def query_data():
# Query to select multiple records
for user in User.select():
print(f'User: {user.username}, Age: {user.age}')
# instance matching query
for tweet in Tweet.select().join(User).where(User.username == 'Alice'):
print(f'{tweet.user.username} tweeted: {tweet.content}')
query_data()
PYTHON
Unten ist der kombinierte Screenshot aller oben genannten Codes.
Erste Schritte
Zuerst müssen Sie Peewee für Funktionen im Zusammenhang mit Object Relational Mapping und IronPDF für die Erstellung von PDFs importieren. Dieses Tutorial setzt voraus, dass Sie bereits Kenntnisse in Python sowie in der Einrichtung von IronPDF zur Verwendung in Python über Python .NET und Peewee haben. Die folgenden Schritte führen Sie durch die Erstellung einer einfachen Anwendung mit Peewee zur Interaktion mit einer Datenbank, und IronPDF wird verwendet, um einen PDF-Bericht zu generieren.
Was ist IronPDF?
DieIronPDFDas Python-Modul ist eine fortgeschrittene Bibliothek zum Erstellen, Bearbeiten und Lesen von PDFs. Es bietet eine Vielzahl von Funktionen, sodass Programmierer viele programmierbare Aktivitäten mit PDFs durchführen können. Dies umfasst die Umwandlung von HTML-Dateien in PDF-Dateien, um bestehende PDFs zu bearbeiten. Das wird es flexibler machen und das Erstellen großartiger Berichte im PDF-Format erleichtern. Programme, die PDF-Dateien dynamisch erzeugen und verarbeiten, können davon profitieren.
Konvertierung von HTML in PDF
Jede HTML-Daten, unabhängig vom Datum, können mit den Fähigkeiten von IronPDF einfach in ein PDF-Dokument konvertiert werden. Es bietet dem Benutzer zudem eine Plattform zur Erstellung äußerst innovativer und aufmerksamkeitsstarker PDF-Publikationen direkt aus Online-Materialien, wobei alle neuesten Funktionen von HTML5, CSS3 und JavaScript genutzt werden.
Erzeugen und Bearbeiten von PDFs
Sie könnten neue PDF-Dokumente mit Text, Bildern, Tabellen usw. sogar mit Hilfe einer Programmiersprache erstellen. Sie dürfen vorbereitete Dokumente im Voraus öffnen und mit IronPDF bearbeiten, um zusätzliche Personalisierungen hinzuzufügen. Inhalte eines PDF-Dokuments können jederzeit hinzugefügt, geändert oder entfernt werden.
Komplexes Design und Styling
Da es von Natur aus einen Inhaltsstil für PDFs hat, können komplexe Layouts mit verschiedenen Schriftarten, Farben und anderen Designelementen gesteuert werden, die dies ermöglichen. Außerdem kann JavaScript nicht verwendet werden, um dynamisches Material in PDFs zu verarbeiten, um eine einfache Darstellung von HTML-Inhalten zu ermöglichen.
IronPDF installieren
IronPDF kann über Pip installiert werden. Der Installationsbefehl lautet wie folgt:
pip install ironpdf
pip install ironpdf
PYTHON
Kombinieren Sie Peewee mit IronPDF
Das Peewee ORM kann erstellt und konfiguriert werden, Daten können eingefügt werden und PDF-Berichte können erstellt werden, indem alle Schritte in der Datei app.py zusammengeführt werden.
from peewee import SqliteDatabase, Model, CharField, IntegerField, ForeignKeyField
import os
from ironpdf import * import warnings
warnings.filterwarnings('ignore')
License.LicenseKey = "";
# Define the database connection
db = SqliteDatabase('my_database.db')
# Define a base model class
class BaseModel(Model):
# class Meta
class Meta:
database = db
#creating single model instance
class User(BaseModel):
username = CharField(unique=True)
age = IntegerField()
# Define a Tweet model
class Tweet(BaseModel):
user = ForeignKeyField(User, backref='tweets')
content = CharField()
# Create the tables
db.connect()
db.create_tables([User, Tweet])
def insert_data():
# Insert a new user
alice = User.create(username='Alice', age=30)
# Insert some tweets for Alice
Tweet.create(user=alice, content='Hello world!')
Tweet.create(user=alice, content='I love Peewee!')
bob = User.create(username='Bob', age=25)
Tweet.create(user=bob, content='This is Bob')
def generate_pdf():
# model SQL query to fetch data from the database
users = User.select()
tweets = Tweet.select().join(User)
# Prepare HTML content for the PDF
html_content = """
<html>
<head><title>Data Report</title></head>
<body>
<h1>User Data Report</h1>
<h2>Users</h2>
<ul>
"""
for user in users:
html_content += f"<li>{user.username}, Age: {user.age}</li>"
html_content += "</ul><h2>Tweets</h2><ul>"
for tweet in tweets:
html_content += f"<li>{tweet.user.username} tweeted: {tweet.content}</li>"
html_content += "</ul></body></html>"
# Create a PDF document using IronPDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(html_content)
# Save the PDF file
output_path = os.path.join(os.getcwd(), "Data_Report.pdf")
pdf.SaveAs(output_path)
print(f"PDF Report saved to {output_path}")
if __name__ == '__main__':
insert_data()
generate_pdf()
from peewee import SqliteDatabase, Model, CharField, IntegerField, ForeignKeyField
import os
from ironpdf import * import warnings
warnings.filterwarnings('ignore')
License.LicenseKey = "";
# Define the database connection
db = SqliteDatabase('my_database.db')
# Define a base model class
class BaseModel(Model):
# class Meta
class Meta:
database = db
#creating single model instance
class User(BaseModel):
username = CharField(unique=True)
age = IntegerField()
# Define a Tweet model
class Tweet(BaseModel):
user = ForeignKeyField(User, backref='tweets')
content = CharField()
# Create the tables
db.connect()
db.create_tables([User, Tweet])
def insert_data():
# Insert a new user
alice = User.create(username='Alice', age=30)
# Insert some tweets for Alice
Tweet.create(user=alice, content='Hello world!')
Tweet.create(user=alice, content='I love Peewee!')
bob = User.create(username='Bob', age=25)
Tweet.create(user=bob, content='This is Bob')
def generate_pdf():
# model SQL query to fetch data from the database
users = User.select()
tweets = Tweet.select().join(User)
# Prepare HTML content for the PDF
html_content = """
<html>
<head><title>Data Report</title></head>
<body>
<h1>User Data Report</h1>
<h2>Users</h2>
<ul>
"""
for user in users:
html_content += f"<li>{user.username}, Age: {user.age}</li>"
html_content += "</ul><h2>Tweets</h2><ul>"
for tweet in tweets:
html_content += f"<li>{tweet.user.username} tweeted: {tweet.content}</li>"
html_content += "</ul></body></html>"
# Create a PDF document using IronPDF
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(html_content)
# Save the PDF file
output_path = os.path.join(os.getcwd(), "Data_Report.pdf")
pdf.SaveAs(output_path)
print(f"PDF Report saved to {output_path}")
if __name__ == '__main__':
insert_data()
generate_pdf()
PYTHON
Dieser Code zeigt, wie man Python .NET verwendet, um IronPDF, eine Python-Bibliothek zur PDF-Erstellung, mit Peewee, einem leichtgewichtigen ORM für Python, zu kombinieren. Unter Verwendung von Peewee wird zunächst eine SQLite-Datenbank erstellt und die User- und Tweet-Modelle mit den entsprechenden Feldern definiert. Nach dem Erstellen der Datenbanktabellen werden Beispieldaten hinzugefügt. Dann verwendet die generate_pdf-Funktion die ChromePdfRenderer-Klasse von IronPDF, um diese Daten abzurufen und in einen HTML-String zu transformieren, der dann als PDF gerendert wird.
Das aktuelle Arbeitsverzeichnis ist der Speicherort des PDFs. Die Vorteile von Peewee zur Datenbankverwaltung und IronPDF zur Erstellung von polierten Dokumenten nutzenPDF-Dokumente, diese Konfiguration ermöglicht reibungslose Datenbankinteraktionen und die automatische Ausgabe von PDF-Berichten innerhalb einer Python-Anwendung.
Schlussfolgerung
Dies wird eine zuverlässige Option für Python-Entwickler bieten, die Datenbanken verwalten und dynamische PDF-Dokumente erstellen möchten, sobald IronPDF in Peewee integriert ist. Mit den benutzerfreundlichen ORM-Funktionen werden Datenbankinteraktionen in Peewee erleichtert, sodass ein Entwickler Datenbankschemata mit großer Leichtigkeit erstellen und ändern kann. Andererseits bietet IronPDF ein Paket, das die Übersetzung von HTML-Inhalten in qualitativ hochwertige PDF-Berichte erleichtert.
Diese Kombination wird daher sehr nützlich in Anwendungen sein, die automatische Berichte mit dynamischen Daten generieren, die aus Datenbanken abgerufen werden. Entwickler können die einfache Definition von Modellen und die Ausführung von Abfragen mit Peewee nutzen, sowie die leistungsstarke PDF-Erstellung mit IronPDF, um Effizienz und Produktivität effektiv zu steigern. Peewee und IronPDF als Kombination werden zu flexiblen und stringenten Behandlungen, um eine Vielzahl von Anwendungsanforderungen auf verschiedene Weise innerhalb des Python-Entwicklungsuniversums zu erfüllen. Diese können von der Rechnungsstellung bis zu Berichten über spezielle Dokumente reichen.
KombinierenIronPDFmit anderenIron SoftwareProdukte werden helfen, überlegene Softwarelösungen für Kunden bereitzustellen, die komplexe Lösungen für Benutzer anbieten. Dies wird zu Ihrem Vorteil die Aufgabe vereinfachen, die Abläufe von Projekten und Verfahren im Allgemeinen zu verbessern.
Neben den Kernfunktionen gibt es ausführliche Dokumentation, eine aktive Community und einen regelmäßigen Aktualisierungszyklus für IronPDF. Basierend auf den oben genannten Informationen aus den vorherigen Absätzen kann ein Entwickler Iron Software als zuverlässigen Partner für moderne Softwareentwicklungsprojekte betrachten. Um alle Funktionen dieser Bibliothek kennenzulernen, bietet IronPDF eine kostenlose Testversion für Entwickler an. In den kommenden Tagen werden Sie sicherstellen, dass Sie den vollen Wert für Ihre 749 $ Lizenzgebühr erhalten.
Bevor er Software-Ingenieur wurde, promovierte Kannapat an der Universität Hokkaido in Japan im Bereich Umweltressourcen. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Abteilung für Bioproduktionstechnik ist. Im Jahr 2022 wechselte er mit seinen C#-Kenntnissen zum Engineering-Team von Iron Software, wo er sich auf IronPDF konzentriert. Kannapat schätzt an seiner Arbeit, dass er direkt von dem Entwickler lernt, der den Großteil des in IronPDF verwendeten Codes schreibt. Neben dem kollegialen Lernen genießt Kannapat auch den sozialen Aspekt der Arbeit bei Iron Software. Wenn er nicht gerade Code oder Dokumentationen schreibt, kann man Kannapat normalerweise beim Spielen auf seiner PS5 oder beim Wiedersehen mit The Last of Us antreffen.
< PREVIOUS scikit-image Python (Wie es funktioniert: Ein Leitfaden für Entwickler)
NÄCHSTES > Seaborn Python (Entwicklerleitfaden zur Funktionsweise)