Bu yazıda sizlere pyton 3 ile mysql veritabanı bağlantısı yapıp verileri nasıl okuyacağınızı göstereceğim. Öncelikle Python veritabanı bağlantısı için bilgisayarımıza PyMySQL modülünün yüklü olması gerekiyor. Aşağıdaki adımları izleyerek PyMySQL modülünü kurabilirsiniz.
PyMySQL Modülünü Kurma
Adım 1: Komut ekranını çalıştır. ( WIN+X > Çalıştır > cmd )

Adım 2:Pip dosyasının yolunu kopyalayın.

Adım 3: Komut ekranına aşağıdaki gibi komutları sırasıyla giriniz.
cd C:\Users\<Kullanıcı Adı>\AppData\Local\Programs\Python\Python36-32\Scripts
pip install PyMySQL

Python ile MySql Veritabanı Bağlanma
Aşağıdaki örneği yapmak için bu veritabanı dosyasını oluşturmanız gerekmektedir.
CREATE TABLE Users ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL ); INSERT INTO `users` (`id`, `firstname`, `lastname`) VALUES (NULL, 'Andy', 'Poweren'), (NULL, 'Minna', 'Ree');
İlk olarak PyMySQL modülünü projeye dahil ediyoruz.
import pymysql.cursors
İkinci olarak mysql bağlantısı için gerekli bağlantı cümlesini yazıyoruz. Kullanıcı adı ve şifre bilgileri kendi bilgisayarınıza bağlı olarak değişiklik gösterir.
# Connect to the database
connection = pymysql.connect(host='localhost',
user='root',
password='',
db='dbname',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
Bu kod veritabanından tek kayıt okumak için yazılmıştır.
try:
with connection.cursor() as cursor:
# Read a single record
sql = "SELECT `id`, `firstname`,`lastname` FROM `users` WHERE `id`=%s"
cursor.execute(sql, ('2',))
result = cursor.fetchone()
print(result)
finally:
connection.close()
Tüm verileri çekmek için fetchall() metodu ile tüm kayıtlar üzerinde dönerek okuma işlemini gerçekleştiriyoruz.
try:
with connection.cursor() as cursor:
# Read a single record
sql = "SELECT `id`, `firstname`,`lastname` FROM `users`"
cursor.execute(sql)
for row in cursor.fetchall():
#data from rows
firstname = str(row["firstname"])
lastname = str(row["lastname"])
#print it
print("The first name is : " + firstname)
print("The last name is : " + lastname)
finally:
connection.close()
Örneğin Tüm Kodları:
# Connect to the database
connection = pymysql.connect(host='localhost',
user='root',
password='',
db='dbname',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
# Read a single record
sql = "SELECT `id`, `firstname`,`lastname` FROM `users`"
cursor.execute(sql)
for row in cursor.fetchall():
#data from rows
firstname = str(row["firstname"])
lastname = str(row["lastname"])
#print it
print("The first name is : " + firstname)
print("The last name is : " + lastname)
finally:
connection.close()


Merhaba..create table users satırında invalid syntax hatası veriyor.ayrıca users id ,firstname kelimelerindeki tırnaklar diğer tırnaklara göre farklı nedeni nedir?