Python ile PostgreSQL Bağlantısı ve Veri Okuma/Yazma İşlemleri

By | 13 October 2015

Daha önceki yazımda, Python ile MongoDB bağlantısı yapmıştık. Bu sefer PostgreSQL ile bu işler nasıl oluyor, bunu anlatıyor olacağım. Bunun için buradaki https://wiki.postgresql.org/wiki/YUM_Installation adımları takip edip, kurulumu tamamlıyorum ve PostgreSql servisini ayağa kaldırıyorum. Ardından resimdeki komutları veriyorum.

Screen Shot 2015-10-13 at 6.56.45 PM

 

‘su postgres’ diyerek kullanıcımı değiştirdim. Görüldüğü gibi ‘psql’ ile servise bağlanamadım, bunun için ‘export PATH=/usr/pgsql-9.4/bin:$PATH’ komutunu verdim. Daha sonra ‘psql’ diyerek PostgreSql servisine bağlandım. Hemen database ve table oluşturalım. Bunun için alttaki komutları uyguladım.

Screen Shot 2015-10-13 at 7.01.00 PM

‘CREATE DATABASE mertsimsek;’ diyerek database’i oluşturdum. ‘\c mertsimsek’ parametresiyle de database içine girdim. Görüldüğü gibi soldaki postgres adı mertsimsek ile değişti. Şimdi de table oluşturalım.

Screen Shot 2015-10-13 at 7.06.18 PM

Burada bir Schema’nın altında table oluşturdum. İlk olarak ‘CREATE SCHEMA Mywebsites;’ dedim. Daha sonra domain ve uzanti adında 2 kolonu ve adı Domains olan bir tablo oluşturdum. Bunun için ‘CREATE TABLE Mywebsites.Domains(domain VARCHAR(20), uzanti VARCHAR(10));’ dedim ve ‘SELECT * FROM Mywebites.Domains;’ ile başarı ile oluştuğunu gördüm.Artık Python ile işlemlerime geçebilirim.

Ben ‘psycopg2’ modülünü kullandım. Yüklemek için root kullanıcısına geçip ‘pip install psycopg’ Screen Shot 2015-10-13 at 7.12.35 PM komutunu veriyoruz. Bazı sürümlerde yüklerken sıkıntı çıkartabiliyor, bunu gidermek için modülü yüklemeden önce ‘yum install postgresql-libs python-psycopg2’ dememiz gerekiyor. Kurulum bittikten sonra artık kodlarımıza geçebiliriz.

import psycopg2

conn_str = "host='localhost' dbname='mertsimsek' user='postgres' password=''"
conn = psycopg2.connect(conn_str)
cursor = conn.cursor()

cursor.execute("""INSERT INTO Mywebsites.Domains(domain, uzanti) VALUES('mertblog', 'net')""")

cursor.execute("""SELECT * FROM Mywebsites.Domains""")
results = cursor.fetchall()
for result in results:
print result

conn.commit()
conn.close()

Burada ilk olarak modülümüzü import ettik.İkinci olarak ‘conn_str’ adındaki değişkenimize bağlantımızı oluşturacağımız değerleri girdik. Daha sonra tablomuza insert işlemini gerçekleştiriyoruz. Insert ettiğimiz veriyi görmek için ‘SELECT * FROM Mywebsites.Domains”””)’ komutunu veriyorum, aldığım değerleri ekrana bastırıyorum. En sonunda ise bağlantıyı kapatıyorum.  Hemen Python dosyamı çalışırıyorum ve istediğimi elde etmiş miyim bakıyorum.

Screen Shot 2015-10-13 at 7.36.01 PM

Görüldüğü gibi istediğim değerler veritabanına insert edilmiş.Aynı işlemle 3 farklı websitesi daha ekledim. Burada Google olanı silicem şimdi de bunun kodlarını yazalım.

Screen Shot 2015-10-13 at 7.38.03 PM

cursor.execute("""DELETE FROM Mywebsites.Domains WHERE domain='google'""")

Screen Shot 2015-10-13 at 7.40.35 PM

Google domainini seçtim ve sildim. Çıktım da görüldüğü 2 websitesine düştü. İstediğimi elde etmiş oldum. Bundan sonra Sql komutlarımıza göre istediğimizi yapabiliriz. Umarım bu yazı faydalı olur, bir sonraki yazıda görüşmek üzere… 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

*