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")
psycopg2 (Comment ça marche pour les développeurs)
Jordi Bardia
août 13, 2024
Partager:
Lespsycopg2 est un adaptateur de base de données PostgreSQL populaire pour le langage de programmation Python. Il est connu pour son efficacité, sa sécurité des threads et son implémentation complète de la spécification Python DB API 2.0. Explorons ses fonctionnalités et voyons quelques exemples de code. Plus loin dans cet article, nous aborderons les sujets suivantsIronPDF, une bibliothèque de génération de PDF deIron Software.
Introduction
Psycopg2 est conçu pour être efficace et sûr, ce qui le rend adapté aux applications fortement multithreadées. Voici quelques-unes de ses principales caractéristiques :
Sécurité des threads : Plusieurs threads peuvent partager la même connexion, ce qui permet de gérer des applications multi-threads qui créent et détruisent de nombreux curseurs.
Curseurs côté client et côté serveur : Traitement efficace des grands ensembles de données.
Communication asynchrone et notifications : Prise en charge des opérations asynchrones.
Prise en charge deCOPY : Chargement efficace de données en vrac à l'aide des fonctions COPY TO et COPY FROM.
Système d'adaptation : Adaptation automatique des types Python aux types PostgreSQL ; le paquetage se transpose automatiquement aux types de données Postgresql correspondants.
Unicode et Python 3 Friendly : Prise en charge complète de l'Unicode et de Python 3.
Pour un paquet autonome qui ne nécessite pas de compilateur ou de bibliothèques externes, vous pouvez utiliser le paquet psycopg2-binary :
pip install psycopg2-binary
Utilisation de base
Voici un exemple simple pour commencer à utiliser psycopg2.
Connexion à une base de données
Tout d'abord, vous devez vous connecter à votre base de données PostgreSQL :
import psycopg2
# Connect to your PostgreSQL database
conn = psycopg2.connect(
dbname="your_dbname",
user="your_username",
password="your_password",
host="your_host",
port="your_port"
)
# Create a cursor object
cur = conn.cursor()
import psycopg2
# Connect to your PostgreSQL database
conn = psycopg2.connect(
dbname="your_dbname",
user="your_username",
password="your_password",
host="your_host",
port="your_port"
)
# Create a cursor object
cur = conn.cursor()
PYTHON
Exécution des requêtes
Vous pouvez exécuter des requêtes SQL à l'aide de l'objet curseur :
# Execute a query
cur.execute("SELECT * FROM your_table")
# Fetch all results
rows = cur.fetchall()
# Print the results
for row in rows:
print(row)
# Execute a query
cur.execute("SELECT * FROM your_table")
# Fetch all results
rows = cur.fetchall()
# Print the results
for row in rows:
print(row)
PYTHON
Insérer des données
Voici comment insérer des données dans un tableau :
# Insert data into a table
cur.execute(
"INSERT INTO your_table (column1, column2) VALUES (%s, %s)",
("value1", "value2")
)
# Commit the transaction
conn.commit()
# Insert data into a table
cur.execute(
"INSERT INTO your_table (column1, column2) VALUES (%s, %s)",
("value1", "value2")
)
# Commit the transaction
conn.commit()
PYTHON
Fermeture de la connexion
N'oubliez pas de fermer le curseur et la connexion lorsque vous avez terminé :
# Close the cursor and connection
cur.close()
conn.close()
# Close the cursor and connection
cur.close()
conn.close()
PYTHON
Fonctionnalités avancées
Utilisation de COPY pour le chargement en masse
La commande COPY est utile pour charger des données en masse :
# Use COPY to load data from a file
with open('data.csv', 'r') as f:
cur.copy_from(f, 'your_table', sep=',')
conn.commit()
# Use COPY to load data from a file
with open('data.csv', 'r') as f:
cur.copy_from(f, 'your_table', sep=',')
conn.commit()
PYTHON
Notifications asynchrones
Vous pouvez écouter les notifications asynchrones de la base de données :
# Listen for notifications
cur.execute("LISTEN your_channel")
# Wait for a notification
conn.poll()
while conn.notifies:
notify = conn.notifies.pop(0)
print("Got NOTIFY:", notify.payload)
# Listen for notifications
cur.execute("LISTEN your_channel")
# Wait for a notification
conn.poll()
while conn.notifies:
notify = conn.notifies.pop(0)
print("Got NOTIFY:", notify.payload)
PYTHON
Présentation d'IronPDF
IronPDF est une puissante bibliothèque Python conçue pour créer, modifier et signer des PDF à l'aide de HTML, CSS, images et JavaScript. Il offre des performances de niveau commercial avec une faible empreinte mémoire. Les principales caractéristiques sont les suivantes :
Conversion de HTML en PDF:
Convertissez des fichiers HTML, des chaînes HTML et des URL en PDF. Par exemple, rendre une page web sous forme de PDF à l'aide du moteur de rendu PDF de Chrome.
Cross-Platform Support:
Compatible avec diverses plateformes .NET, notamment .NET Core, .NET Standard et .NET Framework. Il est compatible avec Windows, Linux et macOS.
Édition et signature:
Définissez des propriétés, renforcez la sécurité à l'aide de mots de passe et d'autorisations, et appliquez des signatures numériques à vos PDF.
Modèles de pages et paramètres:
Personnalisez les PDF avec des en-têtes, des pieds de page, des numéros de page et des marges réglables. Prend en charge les mises en page réactives et les formats de papier personnalisés.
Conformité aux normes:
Respecter les normes PDF telles que PDF/A et PDF/UA. Il prend en charge le codage des caractères UTF-8 et gère les ressources telles que les images, les feuilles de style CSS et les polices.
Générer des documents PDF en utilisant IronPDF et psycopg2
import psycopg2
from ironpdf import *
# Apply your license key
License.LicenseKey = "Key"
# Connect to your local PostgreSQL database
conn = psycopg2.connect(
dbname="demo",
user="postgres",
password="postgres",
host="localhost",
port="5432"
)
# Create a cursor object
cur = conn.cursor()
cur.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER
)
''')
# Commit the transaction with connection object
conn.commit()
# Define the SQL statement for inserting data into the table
insert_query = '''
INSERT INTO users (id, name, age)
VALUES (%s, %s,%s)
'''
# Data to be inserted
userData1 = (1, 'John', 25)
# Execute the SQL command to insert data
cur.execute(insert_query, userData1)
# Data to be inserted
userData2 = (2, 'Smith', 35)
# Execute the SQL command to insert data
cur.execute(insert_query, userData2)
# Data to be inserted
userData3 = (3, 'Tom', 29)
# Execute the SQL command to insert data
cur.execute(insert_query, userData3)
# Commit the transaction
conn.commit()
# Execute a query
cur.execute("SELECT * FROM users")
# Fetch all results
rows = cur.fetchall()
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
content = "<h1>Awesome Iron PDF with psycopg2</h1>"
content += "<p>table data</p>"
for row in rows:
print(row)
content += "<p>"+str(row)+"</p>"
# Close the cursor and connection
cur.close()
conn.close()
pdf = renderer.RenderHtmlAsPdf(content)
# Export to a file or Stream
pdf.SaveAs("Demopsycopg2.pdf")
import psycopg2
from ironpdf import *
# Apply your license key
License.LicenseKey = "Key"
# Connect to your local PostgreSQL database
conn = psycopg2.connect(
dbname="demo",
user="postgres",
password="postgres",
host="localhost",
port="5432"
)
# Create a cursor object
cur = conn.cursor()
cur.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER
)
''')
# Commit the transaction with connection object
conn.commit()
# Define the SQL statement for inserting data into the table
insert_query = '''
INSERT INTO users (id, name, age)
VALUES (%s, %s,%s)
'''
# Data to be inserted
userData1 = (1, 'John', 25)
# Execute the SQL command to insert data
cur.execute(insert_query, userData1)
# Data to be inserted
userData2 = (2, 'Smith', 35)
# Execute the SQL command to insert data
cur.execute(insert_query, userData2)
# Data to be inserted
userData3 = (3, 'Tom', 29)
# Execute the SQL command to insert data
cur.execute(insert_query, userData3)
# Commit the transaction
conn.commit()
# Execute a query
cur.execute("SELECT * FROM users")
# Fetch all results
rows = cur.fetchall()
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
content = "<h1>Awesome Iron PDF with psycopg2</h1>"
content += "<p>table data</p>"
for row in rows:
print(row)
content += "<p>"+str(row)+"</p>"
# Close the cursor and connection
cur.close()
conn.close()
pdf = renderer.RenderHtmlAsPdf(content)
# Export to a file or Stream
pdf.SaveAs("Demopsycopg2.pdf")
PYTHON
Explication du code
Le script démontre l'interaction avec une base de données PostgreSQL à l'aide de `psycopg2`, la manipulation de données(création, insertion, récupération)et l'intégration avec IronPDF pour la génération de documents.
Connexion à la base de données : Se connecte à une base de données PostgreSQL locale nommée "demo" en utilisant `psycopg2`, en spécifiant les informations d'identification pour l'authentification de l'utilisateur et les détails de l'hôte de la base de données.
Création de table : Définit et exécute une instruction SQL pour créer une table nommée "utilisateurs" si elle n'existe pas encore. La table a des colonnes \Nid\N(nombre entier, clé primaire), \Nname\N(texte, non nul), et `age`(entier).
Insertion de données : Insère trois lignes de données dans la table "Utilisateurs" à l'aide de requêtes paramétrées(\N-userData1\N, \N-userData2\N, \N-userData3\N). Chaque tuple contient des valeurs pour \Nid\N, \Nname\N et \Nage\N.
Gestion des transactions : La transaction est validée après la création d'une table et l'insertion de données afin de garantir que les modifications sont enregistrées dans la base de données.
Récupération de données : Exécute une requête SELECT pour récupérer toutes les lignes(``SELECT FROM users`` (sélectionner des utilisateurs)) à partir de la table "Utilisateurs" et récupère les résultats(\N-rows\N- \N- \N).
Génération de PDF : Utilise IronPDF pour générer un document PDF à partir d'un contenu HTML. Le contenu HTML comprend un titre et une représentation formatée des données extraites du tableau "Utilisateurs".
Enregistrement du fichier : Enregistre le document PDF généré sous le nom de "Demopsycopg2.pdf" dans le répertoire actuel.
Fermeture de la connexion : Cette fonction ferme le curseur de la base de données(\circuit) et la connexion à la base de données(\Nconnaissance) pour débloquer les ressources et assurer un nettoyage adéquat.
Pour la gestion des exceptions, vous pouvez entourer le script d'un bloc try-catch afin de vous assurer que toutes les opérations d'erreur sont gérées en cas d'échec de l'une des requêtes ou de l'échec de la connexion.
Sortie
PDF (EN ANGLAIS)
Licence d'IronPDF
IronPDF fonctionne avec la clé de licence Python. IronPDF for Python offre une clé de licence d'essai gratuite pour permettre aux utilisateurs de tester ses nombreuses fonctionnalités avant de l'acheter.
Placez la clé de licence au début du script avant d'utiliser le progiciel IronPDF :
from ironpdf import *
# Apply your license key
License.LicenseKey = "key"
from ironpdf import *
# Apply your license key
License.LicenseKey = "key"
PYTHON
Conclusion
Psycopg2 est une bibliothèque puissante et flexible pour interagir avec les bases de données PostgreSQL en Python. Ses fonctionnalités complètes et sa conception efficace en font un excellent choix pour les opérations de base de données simples et complexes. IronPDF est un package et une bibliothèque Python robuste qui facilite la création, la manipulation et le rendu de documents PDF directement à partir d'applications Python. Il offre des fonctionnalités complètes pour générer des PDF à partir de contenu HTML, en s'intégrant de manière transparente aux technologies web existantes. Avec IronPDF, les développeurs peuvent automatiser efficacement la génération de rapports, de factures et d'autres documents, améliorant ainsi la productivité et l'expérience des utilisateurs. Ses capacités comprennent des formulaires PDF interactifs, l'extraction de texte, la fusion et la division de PDF, et l'ajout de fonctions de sécurité telles que la protection par mot de passe. La polyvalence et la facilité d'utilisation d'IronPDF en font un outil précieux pour les développeurs qui cherchent à mettre en œuvre des fonctionnalités de génération et de manipulation de PDF dans leurs projets Python.
Jordi maîtrise parfaitement Python, C# et C++. Lorsqu'il ne met pas à profit ses compétences chez Iron Software, il se consacre à la programmation de jeux. Partageant des responsabilités en matière de tests de produits, de développement de produits et de recherche, Jordi apporte une valeur ajoutée considérable à l'amélioration continue des produits. Cette expérience variée le stimule et l'engage, et il dit que c'est l'un des aspects qu'il préfère dans son travail chez Iron Software. Jordi a grandi à Miami, en Floride, et a étudié l'informatique et les statistiques à l'université de Floride.
< PRÉCÉDENT sqlite3 Python (Comment ça marche pour les développeurs)
SUIVANT > crc32c Python (Comment ça marche pour les développeurs)
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier