Az alkalmazás létrehozásával megtudhatja, hogyan hozhat létre adatbázistáblát és tölthet fel adatokkal.

A Python kiváló adatbázis-támogatással rendelkezik a szabványos könyvtárába, így létrehozhat és interakcióba léphet az adatbázisokkal anélkül, hogy külső keretrendszerekre, például a Django ORM-re támaszkodna.

Az SQLite könnyű és könnyen integrálható a Pythonnal. Fedezze fel a Python adatbázis-programozásának alapelveit egy egyszerű felhasználói regisztrációs alkalmazással.

Hogyan készítsünk adatbázist Pythonban

Az oktatóanyaghoz használt kódot ebben találja GitHub adattár

Egy adatbázis létrehozásához és a Pythonban való interakcióhoz két fő dologra van szükség: a kapcsolat és a kurzor.

A kapcsolat segít egy meglévő adatbázishoz való csatlakozásban vagy egy új létrehozásában. Így hozhat létre adatbázis-kapcsolatot Pythonban az SQLite segítségével:

import sqlite3

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

# Close the connection
conn.close()

A connect() metódus egy létező adatbázis elérési útját használja. Ha a megadott útvonalon nincs adatbázis, akkor létrehoz egyet. Zárja le az adatbázis-kapcsolatot, ha végzett az adatbázissal.

instagram viewer

A kurzor segít a csatlakoztatott adatbázissal való interakcióban. A kurzor segítségével SQL lekérdezéseket hajthat végre a Python programon belül. Így hozhat létre kurzort:

cursor = conn.cursor()

# Close the cursor
cursor.close()

A kurzort a kurzor() módszer egy nyitott kapcsolati objektumon.

Hogyan hajtsunk végre egy adatbázis-tranzakciót Pythonban

A kurzor segítségével SQL utasításokat, lekérdezéseket vagy parancsfájlokat futtathat adatok olvasásához vagy írásához, vagy módosíthatja az adatbázis szerkezetét.

Három fő módszer használható az adatbázis-tranzakciók végrehajtására.

  1. Cursor.execute. Ez a módszer egyetlen SQL utasítást fog futtatni. A következőképpen használja:
    cursor.execute(
    CREATE TABLE IF NOT EXISTS users (
    name TEXT,
    age INTEGER
    )
    )
    Ez a kód a végrehajtani metódust a kurzoron, átadva neki egy SQL utasítást tartalmazó karakterláncot.
  2. Cursor.executemany. Ezzel a módszerrel ugyanazt az SQL utasítást többször is futtathatja, minden alkalommal más paraméterekkel. Két argumentum kell hozzá: az SQL utasítás és egy iterálható. Jól használható, ha egyszerre több objektumot is beszúrunk az adatbázisba:
    data = [
    ('Alice', 25),
    ('Bob', 30),
    ('Charlie', 22)
    ]

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

    A fenti kód a végrehajtó módszer az értékek többszöri beszúrására az adatbázisba.

    Jegyezze meg a ? helyőrzőket az SQL utasításban. Az executemany metódus lecseréli ezeket az egyes objektumok megfelelő értékeire.

  3. Cursor.executescript. Ahogy a neve is sugallja, ez a módszer egy SQL-szkriptet fog végrehajtani. Írhatja az SQL-utasításokat egy másik fájlba, és futtathatja őket a végrehajtó szkript módszer:
    with open("path/to/script.sql") as file:
    sql_script = file.read()

    cursor.executescript(sql_script)

Regisztrációs alkalmazás létrehozása Python és SQLite3 segítségével

A regisztrációs alkalmazások mögött meghúzódó logika magában foglalja a felhasználó adatainak Python segítségével történő lekérését és adatbázisban való tárolását. Ezek a lépések megmutatják, hogyan hozhat létre egyszerű regisztrációs rendszert Python és SQLite3 segítségével.

1. lépés: Csatlakozzon egy meglévő adatbázishoz, vagy hozzon létre egy újat

Kezdje azzal, hogy hozzon létre egy adatbázist az alkalmazáshoz, vagy csatlakozzon egy meglévőhöz:

import sqlite3

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

cursor = conn.cursor()

# your app's code goes here

cursor.close()

conn.close()

A fenti kód létrehoz egy kapcsolati objektumot és egy kurzort a csatlakoztatott adatbázissal való interakcióhoz.

2. lépés: Hozzon létre egy táblázatot a felhasználók számára

Szüksége van egy táblázatra, ahol tárolhatja azokat az adatokat, amelyeket a felhasználók a regisztráció során megadnak. Így hozhat létre egyet a kurzorral:

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

conn.commit()

Ez a kód létrehoz egy táblát, melynek neve felhasználókat ha nem létezik az adatbázisában. Négy oszlopot hoz létre a táblázatban a felhasználói információk tárolására. Az e-mail mező egyedi, így megakadályozza, hogy a felhasználók több fiókot hozzanak létre ugyanazzal az e-mail-címmel.

A hívás conn.commit fontos, hogy a lekérdezést rögzítse az adatbázisban. Enélkül nem lesz változás az adatbázisban.

Ha az executescript metódust használja, hozzáadhatja a COMMIT kulcsszót az SQL fájl végéhez, így nem kell meghívnia a conn.commit parancsot.

3. lépés: Gyűjtsd össze a felhasználói adatokat

A Python függvények megkönnyítik a kód újrafelhasználását, ezért érdemes létrehozni egy függvényt a regisztrációs funkció kezelésére. Ez a funkció összegyűjti a felhasználó keresztnevét, vezetéknevét, e-mail címét és jelszavát.

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. lépés: Ellenőrizze a jelszó helyességét

Módosítsa a user_register funkció biztosítja, hogy a felhasználó kétszer adja meg ugyanazt a jelszót. Ha nem, kérje meg őket, hogy írják be újra a jelszót. Ezt egy ilyen hurokkal érheti el:

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")

Ezzel a változtatással a felhasználó nem regisztrálhat, ha nem egyezik a jelszava.

5. lépés: Ellenőrizze az e-mailek egyediségét

A felhasználók tábláját létrehozó SQL utasítás egyediként határozza meg az e-mail mezőt. Ez azt jelenti, hogy az adatbázis hibát ad vissza, ha a felhasználó már létező e-mail-címmel regisztrál. A megfelelő cselekvéshez meg kell tennie kezelni a Python kivételt:

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.")

Ez a kód a try-except blokkot használja a duplikált e-mailekből származó hiba kezelésére. Ha az adatbázis IntegrityError üzenetet ad, a while ciklus folytatódik, és egy másik e-mail cím megadására kéri a felhasználót.

Ennél a példaalkalmazásnál nyugodtan feltételezhető, hogy IntegrityError csak az e-mail-cím ismétlődése miatt fordul elő. Egy valós alkalmazásban valószínűleg fejlettebb hibakezelést fog használni az esetlegesen felmerülő egyéb problémák kezelésére.

6. lépés: Illessze be a felhasználó adatait az adatbázisba

Most, hogy összegyűjtötte és ellenőrizte a felhasználó adatait, ideje felvenni azokat az adatbázisba. Te tudod használni egy SQL lekérdezés hogy ezt tegye. Módosítsa a try-kivéve blokkot így:

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.")

A módosított try-except blokkban a kurzor egy SQL beszúrási műveletet hajt végre. Végül a conn.commit metódus véglegesíti az SQL műveletet az adatbázisban.

Ha az összes fenti lépést követte, akkor rendelkeznie kell egy alkalmazással, amely regisztrálja a felhasználókat, és elmenti őket az adatbázisba. Használhat hasonló alkalmazást DB-böngésző SQLite-hoz az adatbázis tartalmának megtekintéséhez:

Adatbázisok használata gyűjteménytípusok helyett

Egyszerű adatbázisok esetén könnyebb lehet saját kódot görgetni. Az alkalmazás növekedésével és az adatbázis összetettebbé válásával azonban fontolja meg egy olyan eszköz használatát, mint a Django ORM a feladat egyszerűsítésére.

Az alacsony szintű adatbázis-készségek gyakorlásának folytatásához próbáljon ki egy bejelentkezési rendszert, amely kiegészíti a regisztrációs programot.