Veritabanı tablosu oluşturma ve onu verilerle doldurma hakkında bilgi edinmek için bu uygulamayı oluşturun.

Python'un standart kütüphanesinde yerleşik mükemmel veritabanı desteği vardır, böylece Django ORM gibi harici çerçevelere güvenmeden bir veritabanı oluşturabilir ve veritabanıyla etkileşimde bulunabilirsiniz.

SQLite hafiftir ve Python ile entegrasyonu kolaydır. Basit bir kullanıcı kayıt uygulamasıyla Python'da veritabanı programlamanın temel ilkelerini keşfedin.

Python'da Veritabanı Nasıl Oluşturulur

Bu eğitim için kullanılan kodu burada bulabilirsiniz. GitHub deposu

Python'da bir veritabanı oluşturmak ve onunla etkileşimde bulunmak için iki ana şeye ihtiyacınız vardır: bağlantı ve bir imleç.

Bağlantı, mevcut bir veritabanına bağlanmanıza veya yeni bir veritabanı oluşturmanıza yardımcı olur. Python'da SQLite ile veritabanı bağlantısının nasıl oluşturulacağı aşağıda açıklanmıştır:

import sqlite3

# Connect to a (new) database
conn = sqlite3.connect('path/to/database.db')

# Close the connection
conn.close()

instagram viewer

bağlamak() yöntem mevcut bir veritabanına giden yolu alır. Belirtilen yolda veritabanı yoksa bir tane oluşturacaktır. Veritabanıyla etkileşiminiz bittiğinde veritabanı bağlantınızı kapatmalısınız.

İmleç, bağlı veritabanıyla etkileşimde bulunmanıza yardımcı olur. Python programınızda SQL sorgularını yürütmek için bir imleç kullanacaksınız. Bir imlecin nasıl oluşturulacağı aşağıda açıklanmıştır:

cursor = conn.cursor()

# Close the cursor
cursor.close()

çağırarak bir imleç oluşturabilirsiniz. imleç() açık bir bağlantı nesnesindeki yöntem.

Python'da Veritabanı İşlemi Nasıl Gerçekleştirilir

Bir imleç kullanarak, verileri okumak veya yazmak veya veritabanı yapısını değiştirmek için SQL ifadelerini, sorgularını veya komut dosyalarını çalıştırabilirsiniz.

Bir veritabanı işlemini yürütmek için kullanabileceğiniz üç ana yöntem vardır.

  1. İmleç.yürütme. Bu yöntem tek bir SQL ifadesini çalıştıracaktır. Bunu nasıl kullanacağınız aşağıda açıklanmıştır:
    cursor.execute(
    CREATE TABLE IF NOT EXISTS users (
    name TEXT,
    age INTEGER
    )
    )
    Bu kod şunu çağırır: uygulamak Bir imleç üzerinde yöntem, ona bir SQL ifadesi içeren bir dize iletir.
  2. İmleç.executemany. Bu yöntem, aynı SQL ifadesini her seferinde farklı parametrelerle birden fazla çalıştırmanıza olanak tanır. İki argüman alır: SQL ifadesi ve yinelenebilir. Bunun iyi bir kullanımı, veritabanına aynı anda birkaç nesne eklemektir:
    data = [
    ('Alice', 25),
    ('Bob', 30),
    ('Charlie', 22)
    ]

    cursor.executemany(INSERT INTO users (name, age) VALUES (?, ?), data)

    Yukarıdaki kod şunu kullanır: birçoğunu infaz etmek değerleri veritabanına birden çok kez ekleme yöntemi.

    not edin ? SQL deyimindeki yer tutucular. Executemany yöntemi, bunları her nesne için karşılık gelen değerlerle değiştirecektir.

  3. Cursor.executescript. Adından da anlaşılacağı gibi bu yöntem sizin için bir SQL betiği çalıştıracaktır. SQL ifadelerinizi farklı bir dosyaya yazıp çalıştırabilirsiniz. yürütme komut dosyası yöntem:
    with open("path/to/script.sql") as file:
    sql_script = file.read()

    cursor.executescript(sql_script)

Python ve SQLite3 ile Kayıt Uygulaması Nasıl Oluşturulur

Bir kayıt uygulamasının arkasındaki mantık, kullanıcının bilgilerinin Python ile alınmasını ve bunların bir veritabanında saklanmasını içerir. Bu adımlar size Python ve SQLite3 ile basit bir kayıt sisteminin nasıl oluşturulacağını gösterecektir.

Adım 1: Mevcut Bir Veritabanına Bağlanın veya Yeni Bir Veritabanı Oluşturun

Uygulamanız için bir veritabanı oluşturarak veya mevcut bir veritabanına bağlanarak başlayın:

import sqlite3

conn = sqlite3.connect('database.db')

cursor = conn.cursor()

# your app's code goes here

cursor.close()

conn.close()

Yukarıdaki kod, bağlı veritabanıyla etkileşime girecek bir bağlantı nesnesi ve bir imleç oluşturur.

2. Adım: Kullanıcılar için Tablo Oluşturun

Kullanıcıların kayıt olurken sağlayacağı verileri saklayacak bir tabloya ihtiyacınız var. İmlecinizle nasıl bir tane oluşturacağınız aşağıda açıklanmıştır:

cursor.execute(
CREATE TABLE IF NOT EXISTS users (
first_name TEXT,
last_name TEXT,
email TEXT UNIQUE,
password TEXT
)
)

conn.commit()

Bu kod adında bir tablo oluşturacaktır. kullanıcılar veritabanınızda yoksa. Kullanıcı bilgilerini tutmak için tabloda dört sütun oluşturur. E-posta alanı, kullanıcıların aynı e-postayla birden fazla hesap oluşturmasını önlemek için benzersizdir.

Çağrı bağlantı.taahhüt Sorgunun veritabanına kaydedilmesi önemlidir. Bu olmadan veritabanında hiçbir değişiklik olmayacaktır.

Executescript yöntemini kullanırsanız, SQL dosyanızın sonuna COMMIT anahtar sözcüğünü ekleyebilirsiniz, böylece conn.commit'i çağırmanıza gerek kalmaz.

3. Adım: Kullanıcı Verilerini Toplayın

Python işlevleri kodun yeniden kullanılmasını kolaylaştırırbu nedenle kayıt özelliğini yönetecek bir işlev oluşturmak iyi bir fikirdir. Bu işlev kullanıcının adını, soyadını, e-posta adresini ve şifresini toplar.

defregister_user():
first_name = input("Enter your first name: ")
last_name = input("Enter your last name: ")
email = input("Enter your email: ")
password1 = input("Enter your password: ")
password2 = input("Confirm your password: ")

4. Adım: Şifre Doğruluğunu Kontrol Edin

Değiştirmek kayıt_kullanıcısı Kullanıcının aynı şifreyi iki kez girmesini sağlayan işlev. Eğer bunu yapmazlarsa, onlardan şifreyi tekrar girmelerini istemelisiniz. Bunu şöyle bir döngüyle başarabilirsiniz:

defregister_user():
first_name = input("Enter your first name: ")
last_name = input("Enter your last name: ")
email = input("Enter your email: ")

whileTrue:
password1 = input("Enter your password: ")
password2 = input("Confirm your password: ")

# Check password correctness
if password1 == password2:
print("You have successfully registered!")
break
else:
print("Your passwords must match")

Bu değişiklikle birlikte, kullanıcı şifreleri eşleşmediği sürece kayıt olamayacaktır.

5. Adım: E-posta Benzersizliğini Kontrol Edin

Kullanıcılar tablosunu oluşturan SQL ifadesi, e-posta alanını benzersiz olarak tanımlar. Bu, bir kullanıcı zaten var olan bir e-postayla kaydolursa veritabanının bir hata döndüreceği anlamına gelir. Uygun şekilde hareket etmek için yapmanız gerekenler Python istisnasını ele alın:

defregister_user():
first_name = input("Enter your first name: ")
last_name = input("Enter your last name: ")

whileTrue:
email = input("Enter your email: ")
password1 = input("Enter your password: ")
password2 = input("Confirm your password: ")

# Check password correctness
if password1 == password2:
try:
print("You have successfully created an account.")
break
except sqlite3.IntegrityError:
print("Error: This email is already registered.")
else:
print("Your passwords must match.")

Bu kod, yinelenen e-postalardan oluşacak hatayı işlemek için try-hariç bloğunu kullanır. Veritabanı bir IntegrityError atarsa ​​while döngüsü devam edecek ve kullanıcıdan farklı bir e-posta adresi girmesi istenecektir.

Bu örnek uygulama için IntegrityError hatasının yalnızca yinelenen e-posta adresi nedeniyle oluşacağını varsaymak yanlış olmaz. Gerçek bir uygulamada, ortaya çıkabilecek diğer sorunları gidermek için muhtemelen daha gelişmiş hata işlemeyi kullanacaksınız.

Adım 6: Kullanıcı Verilerini Veritabanına Ekleme

Artık kullanıcının verilerini toplayıp doğruladığınıza göre, bunları veritabanına ekleme zamanı geldi. Kullanabilirsiniz bir SQL sorgusu böyle yaparak. Try-hariç bloğunuzu şu şekilde değiştirin:

try:
cursor.execute(
INSERT INTO users (first_name, last_name, email, password)
VALUES (?,?,?, ?)
, (first_name, last_name, email, password2))

conn.commit()
print("You have successfully created an account.")
break
except sqlite3.IntegrityError:
print("Error: This email is already registered.")

Değiştirilen try-hariç bloğunda imleç bir SQL ekleme işlemini yürütür. Son olarak, bağlantı.taahhüt yöntemi SQL işlemini veritabanına kaydeder.

Yukarıdaki adımların tamamını takip ettiyseniz kullanıcıları kayıt eden ve veritabanına kaydeden bir uygulamanız olmalıdır. Gibi bir uygulamayı kullanabilirsiniz SQLite için Veritabanı Tarayıcısı Veritabanınızın içeriğini görüntülemek için:

Koleksiyon Türleri Yerine Veritabanlarını Kullanmak

Basit veritabanları için kendi kodunuzu yuvarlamayı daha kolay bulabilirsiniz. Ancak uygulamanız büyüdükçe ve veritabanınız karmaşıklaştıkça görevi basitleştirmek için Django ORM gibi bir araç kullanmayı düşünün.

Düşük düzeyli veritabanı becerilerinizi uygulamaya devam etmek için kayıt programını tamamlayacak bir oturum açma sistemi uygulamayı deneyin.