psycopg2 (Geliştiriciler İçin Nasıl Çalışir)
psycopg2 kütüphanesi, Python programlama dili için popüler bir PostgreSQL veritabanı adaptörüdür. Verimliliği, çoklu iş parçacığı güvenliği ve Python DB API 2.0 spesifikasyonunun tamamı ile tanınır. Özelliklerini keşfedelim ve bazı kod örneklerini görelim. Bu makalenin ilerleyen bölümlerinde IronPDF ve Iron Software'den bir PDF oluşturma kütüphanesini öğreneceğiz.
Psycopg2, verimli ve güvenli olacak şekilde tasarlanmıştır, bu da onu yoğun çoklu iş parçacıklı uygulamalar için uygun kılar. Bazı kilit özellikleri şunlardır:
- İş Parçacığı Güvenliği: Aynı bağlantının birden fazla iş parçacığı tarafından paylaşılabilmesi; birçok kursor oluşturan ve yok eden çok iş parçacıklı uygulamaları işleme yeteneği.
- İstemci ve Sunucu Tarafı Kursorler: Büyük veri kümelerini verimli bir şekilde işleme.
- Asenkron İletişim ve Bildirimler: Asenkron işlemler için destek.
- COPY Desteği: COPY TO ve COPY FROM kullanarak veriyi toplu olarak yükleme verimliliği.
- Adaptasyon Sistemi: Python türlerini PostgreSQL türlerine otomatik olarak uyarlayın; paket otomatik olarak uyuşan PostgreSQL veri türlerine geçiş yapar.
- Unicode ve Python 3 Uyumlu: Unicode ve Python 3 için tam destek.
Kurulum
psycopg2'yi pip kullanarak yükleyebilirsiniz:
pip install psycopg2pip install psycopg2Alternatif olarak, kaynak paketten yerel olarak setup.py dosyasını kullanabilirsiniz. kaynak kod deposundan kaynak paketi buradan edinebilirsiniz:
python setup.py build
sudo python setup.py installpython setup.py build
sudo python setup.py installBir derleyici veya harici kütüphanelere ihtiyaç duymayan bağımsız bir paket için psycopg2-binary paketini kullanabilirsiniz:
pip install psycopg2-binarypip install psycopg2-binaryTemel Kullanım
Başlamak için basit bir psycopg2 örneği:
Veritabanına Bağlanmak
Öncelikle PostgreSQL veritabanınıza bağlanmanız gerekir:
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()Sorgu Çalıştırma
Kursor nesnesini kullanarak SQL sorguları çalıştırabilirsiniz:
# 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 tabloya veri eklemek için aşağıdaki şekilde 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 kursor 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
COPY Kullanarak Toplu Yükleme
COPY komutu, veriyi toplu olarak yüklemek için kullanışlı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'i Tanıtma

IronPDF, HTML, CSS, görüntüler ve JavaScript kullanarak PDF oluşturmak, düzenlemek ve imzalamak için tasarlanmış güçlü bir Python kütüphanesidir. Düşük bellek kullanimiyla ticari seviyede performans sunar. Ana özellikler şunlardır:
HTML'yi PDF'ye Dönüştürme:
HTML dosyalarını, HTML metinlerini ve URL'leri PDF'ye dönüştürün. Örneğin, bir web sayfasını Chrome PDF cizime kullanarak PDF olarak render edin.
Çapraz Platform Desteği:
.NET Core, .NET Standard ve .NET Framework dahil çeşitli .NET platformlariyla uyumludur. Windows, Linux ve macOS'u destekler.
Düzenleme ve İmzalama:
Özellikleri ayarlayin, sifreler ve izinlerle guvenlik ekleyin ve PDF'lerinize dijital imzalar uygulayın.
Sayfa Şablonları ve Ayarları:
Basliklar, alt basliklar, sayfa numaralari ve ayarlanabilir kenar bosluklari ile PDF'leri ozellestirin. Duyarlı mizanpajları ve özel kağıt boyutlarını destekler.
Standartlara Uyum:
PDF/A ve PDF/UA gibi PDF standartlarına uyar. UTF-8 karakter kodlaması desteği bulunmaktadır ve resim, CSS ve yazı tipleri gibi varlıkları işler.
IronPDF ve psycopg2 Kullanarak PDF Belgeleri Üretme
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ı
Bu betik, PostgreSQL veritabanı ile etkileşimi, psycopg2 kullanarak veri manipülasyonunu (oluşturma, ekleme, alma) ve doküman üretimi için IronPDF ile entegrasyonu göstermektedir.
- Veritabanı Bağlantısı: Kullanıcı kimlik doğrulaması ve veritabanı sunucu ayrıntılarını 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(tamsayı, birincil anahtar),name(metin, boş olamaz) veage(tamsayı) sütunlarına sahiptir. - Veri Ekleme: Parametreli sorgular (
user_data) kullanarakuserstablosuna veri satırları ekler. Her bir demetid,nameveageiçin değerler içerir. - İşlem Yönetimi: Tablonun oluşturulmasından ve veri eklenmesinden sonra işlemin değişikliklerin veritabanına kaydedilmesini sağlamak için komutunu verir.
Veri Alma:
userstablosundan tüm satırları (SELECT * FROM users) almak için bir SELECT sorgusu yürütür ve sonuçları (rows) alır.- PDF Üretimi: HTML içeriğinden bir PDF belgesi üretmek için
IronPDFkullanır. HTML içeriği,userstablosundan alınan verilerin bir başlığını ve biçimlendirilmiş bir temsilini içerir. - Dosya Kaydetme: Üretilen PDF belgesi "Demopsycopg2.pdf" adıyla mevcut dizinde kaydedilir.
- Bağlantıyı Kapama: Kaynakları serbest bırakmak ve doğru temizliği sağlamak için veritabanı imlecini (
cur) ve veritabanı bağlantısını (conn) kapatır.
Hata işleme için, betiği sorgu veya bağlantı sorunları meydana gelmesi durumunda tüm hata işlemlerinin ele alındığından emin olmak amacıyla try-catch bloklarının içine sarın.
Çıktı


IronPDF Lisansı
IronPDF, Python lisans anahtarında çalışır. Python için IronPDF, satın alımdan önce kullanıcıların kapsamlı özelliklerini test etmelerine olanak tanıyan ücretsiz bir deneme lisansı anahtarı sunar.
IronPDF paketini kullanmadan önce lisans anahtarını betiğin başlangıcında 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 kurmak için güçlü ve esnek bir kütüphanedir. Kapsamlı özellik seti ve verimli tasarımı, onu basit ve karmaşık veritabanı işlemleri için mükemmel bir tercih yapar. IronPDF, PDF belgelerinin doğrudan Python uygulamalarından oluşturulmasını, değiştirilmesini ve işlenmesini kolaylaştıran sağlam bir Python paketi ve kütüphanesidir. Mevcut web teknolojileri ile sorunsuz entegrasyonla, HTML içeriğinden PDF üretme için kapsamlı özellikler sunar. IronPDF ile geliştiriciler, raporlar, faturalar ve diğer belgeleri otomatik olarak hızlı bir şekilde üreterek verimliliği ve kullanıcı deneyimini artırabilirler. Özellikleri, interaktif PDF formları, metin çıkarma, PDF'lerin birleştirilmesi ve bölünmesi ve şifre koruması gibi güvenlik özelliklerinin eklenmesini içerir. IronPDF'nin çok yönlülüğü ve kullanımı kolaylığı, Python projelerinde PDF oluşturma ve değiştirme işlevleri uygulamak isteyen geliştiriciler için değerli bir araç yapar.










