- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
Bir önceki bölümde python_proje veritabanını oluşturduk. Şimdi, asıl veri depolama işlemi için bu veritabanının içine bir tablo inşa etmemiz gerekiyor. Tablolar, veritabanının yapı taşlarıdır ve veriyi satırlar ve sütunlar halinde organize eder. Bu bölümde, müşteri bilgilerini saklayacağımız musteriler tablosunu nasıl oluşturacağımızı göreceğiz. Ayrıca, bağlantı bilgilerimizi merkezi bir config.py dosyasında nasıl yöneteceğimizi de öğreneceğiz.
Öncelikle, bağlantı bilgilerinizi merkezi olarak tutan config.py dosyasını oluşturun/güncelleyin:
# config.py dosyası içeriği GÜNCELLENDİ
DB_CONFIG = {
"host": "localhost",
"user": "root",
"password": "parolanız", # Kendi MySQL parolanızı yazın
"database": "python_proje" # ⬅️ Artık buraya bağlanacağız!
}
Şimdi de tablo oluşturma işlemini yapacağımız create_table.py dosyasının içeriği:
import mysql.connector
# config dosyasından güncel ayarları alıyoruz
from config import DB_CONFIG
# Tablo oluşturma işlemini try-except bloğu içine alıyoruz.
try:
# 1. Veritabanına Bağlanma
# **DB_CONFIG sayesinde sözlük (dictionary)
# içeriğini parametre olarak gönderiyoruz.
mydb = mysql.connector.connect(**DB_CONFIG)
# 2. Cursor Oluşturma
mycursor = mydb.cursor()
print(f"'{DB_CONFIG['database']}'veritabanına başarılı şekilde bağlanıldı.")
# 3. Tablo Yapısını Tanımlama (SQL Sorgusu)
TABLE_SQL = """
CREATE TABLE musteriler (
id INT AUTO_INCREMENT PRIMARY KEY,
isim VARCHAR(255) NOT NULL,
email VARCHAR(255) UNIQUE,
kayit_tarihi DATE
)
"""
# 4. Sorguyu Çalıştırma
mycursor.execute(TABLE_SQL)
# Başarı mesajı
print("'musteriler' tablosu başarıyla oluşturuldu.")
except mysql.connector.Error as err:
# Tablo zaten mevcutsa (Hata kodu 1050) özel bir mesaj yazdır
if err.errno == 1050:
print("'musteriler' tablosu zaten mevcut, tekrar oluşturulmadı.")
else:
# Diğer hataları (bağlantı, veritabanı yok vb.) yakala
print(f" Tablo oluşturulurken bir hata oluştu: {err}")
finally:
# Bağlantıları kapatma
if 'mycursor' in locals() and mycursor:
mycursor.close()
if 'mydb' in locals() and mydb.is_connected():
mydb.close()
print("Bağlantılar sonlandırıldı.")
Bu kod bloğu, bağlantı bilgilerini dışarıdan alarak belirlenen veritabanına bağlanır ve temel bir tablo oluşturma görevini yerine getirir:
Harici Konfigürasyon Kullanımı:
from config import DB_CONFIG ile bağlantı bilgilerimizi config.py dosyasından alıyoruz. Bu, kodumuzun daha temiz kalmasını ve bağlantı detaylarının tek bir yerde yönetilmesini sağlar.
"database": "python_proje" tanımı, artık sunucuya bağlanırken doğrudan hangi veritabanını kullanacağımızı belirtmemizi sağlar.
Basitleştirilmiş Bağlantı:
mydb = mysql.connector.connect(**DB_CONFIG) satırındaki **DB_CONFIG yapısı önemlidir. Bu, Python'daki bir sözlüğün anahtar-değer çiftlerini doğrudan fonksiyonun keyword argümanları olarak kullanmasını sağlar. Yani, host=..., user=..., database=... gibi argümanları tek seferde göndermiş oluruz.
SQL Sorgusu (TABLE_SQL):
Çok satırlı bir string içinde CREATE TABLE musteriler (...) sorgusu tanımlanmıştır.
Tablo Kolonlarının Yapısı:
id INT AUTO_INCREMENT PRIMARY KEY: Bu, tablonun anahtar sütunudur. Her yeni kaydın benzersiz bir kimliğe sahip olmasını sağlar ve MySQL bu numarayı otomatik olarak 1'den başlayarak artırır.
isim VARCHAR(255) NOT NULL: Müşteri adının tutulacağı metin sütunudur. NOT NULL kısıtlaması, bu alanın boş bırakılamayacağını belirtir, bu da veri bütünlüğü için önemlidir.
email VARCHAR(255) UNIQUE: E-posta adresinin tutulduğu metin sütunudur. UNIQUE kısıtlaması, hiçbir müşterinin aynı e-posta adresine sahip olamayacağını garanti eder.
kayit_tarihi DATE: Müşterinin ne zaman kaydedildiğini tutacak tarih formatındaki sütundur.
Hata Yönetimi (Özel Durum):
except mysql.connector.Error as err: bloğunda, özellikle hata kodu 1050 kontrol edilir. Bu kod, "Tablo zaten mevcut" anlamına gelir. Böylece, kodumuzu birden fazla çalıştırsak bile bir hata fırlatmak yerine, kullanıcıya nazikçe bir bilgilendirme mesajı gösteririz.
Python dosyasını çalıştırdıktan sonra, tablonun gerçekten oluştuğunu MySQL Workbench aracı ile doğrulayabiliriz:
MySQL Workbench'i açın.
"Local instance MySQL80" yazılı bağlantıya tıklayın ve kurulum sırasında belirlediğiniz parolanızı girerek giriş yapın.
Sol taraftaki SCHEMAS panelinde, python_proje veritabanını bulun.
Veritabanının altındaki "Tables" (Tablolar) başlığını genişletin.
Burada musteriler adında yeni oluşturduğunuz tabloyu görmelisiniz. Bu, tablonuzun başarıyla oluşturulduğu anlamına gelir!
Yorumlar
Yorum Gönder