İPUCU

Python Artificial Intelligence’da en çok kullanılan dildir ve gerekli dökümanların paylaşım alanlar burada paylaşılmaktadır.

Seçenekler

Python Sqlite3 Veritabanı Bağlantısı -Phoique

Phoique 7 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2017
Mesajlar:
462
Konular:
23
Teşekkür (Etti):
37
Teşekkür (Aldı):
139
Ticaret:
(0) %
23-05-2017 20:56
#1
Python Sqlite3 Veritabanı Bağlantısı -Phoique
Merhaba arkadaşlar bugün pythonda en meşur veritabanı olan sqlite3 ile veritabanının temel işlemlerinden bahsedeceğim. Bu konuda pythonu neredeyse temeli bilenler için anlama bakımından daha yararlı olacağını düşünüyorum.

İlk olarak bir modülü çağırmamız lazım.
Kod:
import sqlite3 as sql
Burada modülü import ettikten sonra as sql ile sql şeklinde kısattık. Bu işlemden sonra bir bağlantı değişkeni oluşturup veritabanı yolumuzu göstermemiz gerekir.
Kod:
baglan = sql.connect("datebase.db")
Bağlan adında bir sql bağlantısı oluşturduk parantez içinde datebase.db datebasenin bulunduğu dizindir. Buraya isterseniz C:// gibi dizin de yazabilirsiniz. Eğer benim gibi yazarsanız projenizin bulunduğu dizine oluşturacaktır.

Not: Eğer ki datebasenizi kendiniz oluşturmadıysanız python otomatik olarak belirtiğiniz dizinde datebasenizi oluşturmaktadır.

Şimdiye kadar herhangi bir sorun olmadıysa güzel gidiyorsunuzdur. Bundan sonraki işlem bir cursor değişkeni oluşturmak bu oluşturduğumuz değişkenin işlemi veritabanında sorguları select,insert,delete gibi işlemleri işleyen değişken olacaktır.
Kod:
cur = baglan.cursor()

Biliyorum makaleyi buraya kadar okudunuz ama hala bir işlem yapmış değilsiniz. Geliyor merak etmeyin.

Veritabanına Tablo ve Colon Oluşturma
Yukarıda veritabanını oluşturmuştuk, ee haliyle tablo oluşturmak gerekir. Pythonun bir güzelliği daha tabloları kodla oluşturabilme gibi bir avantajımız vardır. İsterseniz siz elle de oluşturabilirsiniz ama ben kodla oluşturmayı tercih ettim.
Kod:
cur.execute("CREATE TABLE IF NOT EXISTS kullanicilar(id INTEGER PRIMARY KEY, kullanici_adi , sifre, ad_soyad)")

Burayı ve bundan sonraki select insert kodlarını açıklama yapmayacağım fazla çünkü bu kodlar ve daha fazlasını bilmek için sql sorgulama dilini bilmeniz gerekir. cur.execute("İşlemlerin yazıldığı yer insert,delete,update vs") şeklinde çalışmaktadır. Yukarıda kullanicilar adında bir tablo oluşturup içine id,
kullanici_adi , sifre, ad_soyad şeklinde colonlar oluşturduk. İsterseniz son fonksiyondan sonra kontrol edebilirsiniz.

Eee bu kadar işlem yaptık kaydetmek lazım bu işlemleri veritabanına bunun için
Kod:
baglan.commit()
yazmamız gerekir. Bunu da yazıp kaydetme işlemi yaptık veritabanı açık mı kalsın kapatmak lazım.
Kod:
baglan.close()
Heh şimdi tüm kodları şöyle bir tekrar yazalım ve projemizi çalıştıralım.
Kod:
import sqlite3 as sql
baglan = sql.connect("datebase.db")
cur = baglan.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS kullanicilar(id INTEGER PRIMARY KEY, kullanici_adi , sifre, ad_soyad)")
baglan.commit()
baglan.close()
Şimdi ise çalıştıralım. Çalıştırdıktan sonra belirtiğiniz dizinde eğer dizin belirtmediyseniz projenin olduğu klasorde datebase.db adında bir dosya oluşmaktadır. Bu dosyayı açmak için:

DB Browser for SQLite

indirip kullanmanız gerekir. Resimde de gördüğünüz gibi tablolar ve colonlar oluşmuştur.



Tablomuz da oluştuğuna göre artık insert, select gibi işlemleri yapmaya başlayalım.

Veri Ekleme(INSERT INTO)
Yukarıda da dediğim gibi fonksiyonları fazla anlatmayacağım. Sadece anlatılması gerekenleri anatıp geçeceğim. Çünkü konu çok uzayacak ve sizler de okurken sıkılacaksınız. Kahvenizi,cayınızı felan yenilemeyi unutmayın.
Kod:
cur.execute("INSERT INTO kullanicilar(kullanici_adi , sifre, ad_soyad) VALUES(?, ?, ?)",(k_adi,sifre,ad_soyad))

Burada Insert ınto tablo(colonlar) Values(colonlara eklenecek veriler) şeklinde kullanılır. Ben orada fark ettiğiniz gibi ?? şeklinde yazdım. 3 tane yapmamın sebebi ise 3 tane colonuma sonra veri gireceğimi söylemem. Valuesin parantezinin bitişinden sonra , koyup parantezler içinde sonra gireceğimizi söylediğimiz için giriyoruz değerlerimizi isterseniz siz VALUES(kullanici_adi = 'xx') şeklinde de yapabilirsiniz. Ben değerleri değişkenden çekmek istedim. Buda eklediğimiz veri...



Kodun tamamı:
Kod:
import sqlite3 as sql
baglan = sql.connect("datebase.db")
cur = baglan.cursor()
cur.execute("INSERT INTO kullanicilar(kullanici_adi , sifre, ad_soyad) VALUES(?, ?, ?)",(k_adi,sifre,ad_soyad))
baglan.commit()
baglan.close()
Şimdilik bu kadar arkadaşlar konu git gide uzayacağı için vaktim oldukça en kısa sürede tamamlayacağım.
---------------------
JavaScript Developer
Pentester - ait Kullanıcı Resmi (Avatar)
Researcher
Üyelik tarihi:
09/2016
Mesajlar:
1.169
Konular:
89
Teşekkür (Etti):
613
Teşekkür (Aldı):
484
Ticaret:
(0) %
23-05-2017 21:01
#2
Ellerine sağlık
---------------------
"Benim naçiz vücudum, bir gün elbet toprak olacaktır. Fakat Türkiye Cumhuriyeti, ilelebet payidar kalacaktır."
Mustafa Kemal ATATÜRK

Yapabildiğimiz her şeyi yapsaydık, buna kendimiz bile şaşardık.
b0mb - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2017
Nereden:
İzmir
Yaş:
17
Mesajlar:
471
Konular:
64
Teşekkür (Etti):
143
Teşekkür (Aldı):
221
Ticaret:
(0) %
23-05-2017 21:35
#3
Ellerine sağlık
Phoique 7 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
03/2017
Mesajlar:
462
Konular:
23
Teşekkür (Etti):
37
Teşekkür (Aldı):
139
Ticaret:
(0) %
24-05-2017 18:03
#4
Alıntı:
Pentester´isimli üyeden Alıntı Mesajı göster
Ellerine sağlık
Teşekkürler dostum, müsait bir zamanda geri kalanı tamamlayacağım.
---------------------
JavaScript Developer
Hacknology - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
10/2015
Nereden:
rm -rf /
Mesajlar:
2.710
Konular:
151
Teşekkür (Etti):
947
Teşekkür (Aldı):
1233
Ticaret:
(0) %
25-05-2017 18:53
#5
Ellerine sağlık
---------------------
I surrender my soul
Odin hear my call

flag{Bur4si_b1r_0yun_park1}

hacknology@hacknologyroot:~/

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı