psycopg2 (Geliştiriciler İçin Nasıl Çalışir)
psycopg2 kütüphanesi, Python programlama dili için popüler bir PostgreSQL veritabanı uyarlayıcısıdır. Verimliliği, iş parçacığı güvenliği ve Python DB API 2.0 spesifikasyonunun tam olarak uygulanması ile bilinir. Özelliklerini keşfedelim ve bazı kod örnekleri görelim. Daha sonra bu makalede, IronPDF hakkında, Iron Software tarafından geliştirilen bir PDF oluşturma kütüphanesi hakkında bilgi edineceğiz.
Psycopg2, verimliliği ve güvenliği sağlamak üzere tasarlanmıştır, çok iş parçacıklı uygulamalar için uygundur. Bazı temel özellikleri şunlardır:
- İş Parçacığı Güvenliği: Birden fazla iş parçacığı, aynı bağlantıyı paylaşabilir - birçok imleç oluşturan ve yok eden çok iş parçacıklı uygulamaları ele alma yeteneği.
- İstemci Tarafı ve Sunucu Tarafı İmleçler: Büyük veri kümelerini verimli bir şekilde işleyin.
- Asenkron İletişim ve Bildirimler: Asenkron işlemler için destek sağlar.
- COPY Desteği: COPY TO ve COPY FROM kullanarak verileri toplu olarak yükleyin.
- Uyum Sistemi: Python türlerini otomatik olarak PostgreSQL türlerine uyarlayın; paket otomatik olarak eşleşen PostgreSQL veri türlerine geçer.
- Unicode ve Python 3 Dostu: Unicode ve Python 3 için tam destek sunar.
Kurulum
Pip kullanarak psycopg2 kurabilirsiniz:
pip install psycopg2pip install psycopg2Alternatif olarak, kaynak paketi yerel olarak setup.py kullanabilirsiniz. Kaynak paketi buradan alabilirsiniz: buradan:
python setup.py build
sudo python setup.py installpython setup.py build
sudo python setup.py installBir derleyici veya harici kitaplıklara gereksinim duymayan bağımsız bir paket için psycopg2-binary paketini kullanabilirsiniz:
pip install psycopg2-binarypip install psycopg2-binaryTemel Kullanım
İşte psycopg2 ile başlamanızı sağlayacak basit bir örnek.
Bir Veritabanına Bağlanma
Öncelikle, PostgreSQL veritabanınıza bağlanmanız gerekecektir:
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()Sorgular Yürütme
İmleç nesnesini kullanarak SQL sorguları yürütebilirsiniz:
# 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)Veri Ekleme
Bir tablolara veri eklemeyi şöyle yapabilirsiniz:
# 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()Bağlantıyı Kapatma
İşiniz bittiğinde imleci ve bağlantıyı kapatmayı unutmayın:
# Close the cursor and connection
cur.close()
conn.close()# Close the cursor and connection
cur.close()
conn.close()Gelişmiş Özellikler
Toplu Yükleme İçin COPY Kullanımı
COPY komutu, verileri toplu olarak yüklemek için yararlıdır:
# 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()Asenkron Bildirimler
Veritabanından asenkron bildirimleri dinleyebilirsiniz:
# 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)IronPDF Tanıtımı

IronPDF, HTML, CSS, resimler ve JavaScript kullanarak PDF'ler oluşturmak, düzenlemek ve imzalamak için tasarlanmış güçlü bir Python kütüphanesidir. Düşük bellek kullanımıyla ticari düzeyde performans sunar. Önemli özellikler şunları içerir:
HTML'den PDF'ye Dönüştürme:
HTML dosyalarını, HTML dizelerini ve URL'leri PDF'ye dönüştürün. Örneğin, bir web sayfasını Chrome PDF render edici kullanarak PDF olarak işleyin.
Çapraz Platform Desteği:
.NET Core, .NET Standard ve .NET Framework gibi çeşitli .NET platformlarıyla uyumludur. Windows, Linux ve macOS'u destekler.
Düzenleme ve İmzalama:
Özellikleri ayarlayın, parolalar ve izinlerle güvenlik ekleyin ve PDF'lerinizi dijital olarak imzalayın.
Sayfa Şablonları ve Ayarları:
Başlıklar, altbilgiler, sayfa numaraları ve ayarlanabilir kenar boşlukları ile PDF'leri özelleştirin. Duyarlı düzenleri ve özel kağıt boyutlarını destekler.
Standartlara Uygunluk:
PDF/A ve PDF/UA gibi PDF standartlarına uygunluk gösterir. UTF-8 karakter kodlamasını destekler ve resimler, CSS ve yazı tipleri gibi varlıklarla ilgilenir.
IronPDF ve psycopg2 kullanarak PDF Belgeleri Oluşturma
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()
# Create the users table if it doesn't already exist
cur.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER
)
''')
# Commit the transaction
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
user_data = [
(1, 'John', 25),
(2, 'Smith', 35),
(3, 'Tom', 29)
]
# Insert data into the table
for user in user_data:
cur.execute(insert_query, user)
# Commit the transaction
conn.commit()
# Execute a query to retrieve data from the users table
cur.execute("SELECT * FROM users")
# Fetch all results
rows = cur.fetchall()
# Initialize PDF renderer
renderer = ChromePdfRenderer()
# Create a PDF from HTML content
content = "<h1>Awesome Iron PDF with psycopg2</h1>"
content += "<p>Table data:</p>"
for row in rows:
print(row)
content += f"<p>{row}</p>"
# Close the cursor and connection
cur.close()
conn.close()
# Render HTML content as PDF
pdf = renderer.RenderHtmlAsPdf(content)
# Save the PDF to a file
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()
# Create the users table if it doesn't already exist
cur.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER
)
''')
# Commit the transaction
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
user_data = [
(1, 'John', 25),
(2, 'Smith', 35),
(3, 'Tom', 29)
]
# Insert data into the table
for user in user_data:
cur.execute(insert_query, user)
# Commit the transaction
conn.commit()
# Execute a query to retrieve data from the users table
cur.execute("SELECT * FROM users")
# Fetch all results
rows = cur.fetchall()
# Initialize PDF renderer
renderer = ChromePdfRenderer()
# Create a PDF from HTML content
content = "<h1>Awesome Iron PDF with psycopg2</h1>"
content += "<p>Table data:</p>"
for row in rows:
print(row)
content += f"<p>{row}</p>"
# Close the cursor and connection
cur.close()
conn.close()
# Render HTML content as PDF
pdf = renderer.RenderHtmlAsPdf(content)
# Save the PDF to a file
pdf.SaveAs("Demopsycopg2.pdf")Kod Açıklaması
Betik, bir PostgreSQL veritabanı ile etkileşimi psycopg2 kullanarak, veri manipülasyonu (oluşturma, ekleme, alma) ve belge oluşturma için IronPDF ile entegrasyonu göstermektedir.
- Veritabanı Bağlantısı: Kullanıcı kimlik doğrulaması ve veritabanı sunucu bilgilerini belirterek,
psycopg2kullanarak 'demo' adlı yerel bir PostgreSQL veritabanına bağlanır. - Tablo Oluşturma: Daha önce mevcut değilse
usersadlı bir tablo oluşturmak için bir SQL ifadesi tanımlar ve yürütür. Tablo,id(tam sayı, birincil anahtar),name(metin, boş olamaz) veage(tam sayı) sütunlarına sahiptir. - Veri Ekleme: Parametreli sorgular (
user_data) kullanarakuserstablosuna veri satırları ekler. Her bir demet,id,nameveageiçin değerler içerir. - İşlem Yönetimi: Tablonun oluşturulmasından ve veri eklenmesinden sonra işlemi gerçekleştirilir ve değişikliklerin veritabanında kaydedilmesini sağlar.
Veri Alma:
userstablosundan tüm satırları (SELECT * FROM users) almak için bir SELECT sorgusu yürütür ve sonuçları alır (rows).- PDF Oluşturma:
IronPDFkullanılarak HTML içeriğinden bir PDF belge oluşturulur. HTML içeriği,userstablosundan alınan verilerin başlığını ve biçimlendirilmiş bir temsilini içerir. - Dosya Kaydetme: Oluşturulan PDF belgesi, mevcut dizine "Demopsycopg2.pdf" olarak kaydedilir.
- Bağlantı Kapatma: Veritabanı imlecini (
cur) ve veritabanı bağlantısını (conn) kapatarak kaynakları serbest bırakır ve düzgün bir temizlik sağlar.
İstisna yönetimi için, bir sorgu veya bağlantı sorunu oluştuğunda tüm hata işlemlerinin ele alınmasını sağlamak için betiği try-catch blokları içinde sarın.
Çıktı


IronPDF Lisansı
IronPDF, Python lisans anahtarı üzerinde çalışır. IronPDF for Python, kullanıcıların satın almadan önce geniş özelliklerini test etmelerine olanak tanıyan ücretsiz bir deneme lisans anahtarı sunar.
Lisans Anahtarını, IronPDF paketini kullanmadan önce betiğin başına yerleştirin:
from ironpdf import *
# Apply your license key
License.LicenseKey = "key"from ironpdf import *
# Apply your license key
License.LicenseKey = "key"Sonuç
Psycopg2, Python'da PostgreSQL veritabanları ile etkileşim için güçlü ve esnek bir kütüphanedir. Kapsamlı özellik seti ve verimli tasarımı, basit ve karmaşık veritabanı işlemleri için mükemmel bir seçim yapar. IronPDF, doğrudan Python uygulamalarından PDF belgelerinin oluşturulmasını, özelleştirilmesini ve işlenmesini kolaylaştıran sağlam bir Python paketi ve kütüphanesidir. HTML içerikten PDF oluşturmayı ve mevcut web teknolojileriyle sorunsuz entegrasyonu için kapsamlı özellikler sunar. IronPDF ile, geliştiriciler raporlar, faturalar ve diğer belgelerin oluşturulmasını verimli bir şekilde otomatikleştirerek, verimliliği ve kullanıcı deneyimini artırabilirler. PDF'ler için etkileşimli formlar, metin çıkarma, birleştirme ve ayırma gibi işler ve şifre koruması gibi güvenlik özelliklerinin eklenmesi de dahil olmak üzere kabiliyetleri bulunur. IronPDF'in kullanım kolaylığı ve çok yönlülüğü, Python projelerinde PDF oluşturma ve yönetim işlevselliğini uygulamak isteyen geliştiriciler için değerli bir araç haline getirir.










