Jak vytvořit registrační aplikaci s Pythonem a databází

Python má ve své standardní knihovně vestavěnou vynikající podporu databází, takže můžete vytvářet databáze a pracovat s nimi, aniž byste se spoléhali na externí rámce, jako je Django ORM.

SQLite je lehký a snadno se integruje s Pythonem. Objevte základní principy programování databází v Pythonu pomocí jednoduché aplikace pro registraci uživatelů.

Jak vytvořit databázi v Pythonu

K vytvoření a interakci s databází v Pythonu potřebujete dvě hlavní věci: připojení a kurzor.

Připojení vám pomůže připojit se k existující databázi nebo vytvořit novou. Zde je návod, jak vytvořit připojení k databázi v Pythonu s SQLite:

 import sqlite3


conn = sqlite3.connect('path/to/database.db')


conn.close()

Metoda connect() přebírá cestu k existující databázi. Pokud na zadané cestě není žádná databáze, vytvoří se. Po dokončení práce s databází byste měli ukončit připojení k databázi.

Kurzor vám pomáhá při interakci s připojenou databází. Kurzor použijete ke spouštění SQL dotazů v programu Python. Zde je návod, jak vytvořit kurzor:

 cursor = conn.cursor()


cursor.close()

Kurzor můžete vytvořit voláním metody kurzor() na otevřeném objektu připojení.

Jak provést databázovou transakci v Pythonu

Pomocí kurzoru můžete spouštět příkazy SQL, dotazy nebo skripty, číst nebo zapisovat data nebo měnit strukturu databáze.

Existují tři hlavní metody, které můžete použít k provedení databázové transakce.

  Jak snadno změnit velikost písmen v textu v Dokumentech Google
  • Cursor.execute. Tato metoda spustí jeden příkaz SQL. Používáte ji takto:
     cursor.execute("""
        CREATE TABLE IF NOT EXISTS users (
            name TEXT,
            age INTEGER
        )
    """)

    Tento kód zavolá metodu spuštění na kurzor a předá mu řetězec obsahující příkaz SQL.

  • Cursor.executemany. Tato metoda umožňuje spustit stejný příkaz SQL více než jednou, pokaždé s jinými parametry. Vyžaduje dva argumenty: příkaz SQL a iterovatelný. Dobré využití je vložit do databáze několik objektů najednou:
     data = [
        ('Alice', 25),
        ('Bob', 30),
        ('Charlie', 22)
    ]

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

    Výše uvedený kód používá metodu executemany k vícenásobnému vkládání hodnot do databáze.

    Všimněte si ? zástupné symboly v příkazu SQL. Metoda executemany je nahradí odpovídajícími hodnotami pro každý objekt.

  • Cursor.executescript. Jak název napovídá, tato metoda za vás spustí SQL skript. Své příkazy SQL můžete zapsat do jiného souboru a spustit je pomocí metody skriptu:
     with open("path/to/script.sql") as file:
    sql_script = file.read()

    cursor.executescript(sql_script)

  • Jak vytvořit registrační aplikaci s Pythonem a SQLite3

    Logika registrační aplikace zahrnuje získání informací o uživateli pomocí Pythonu a jejich uložení do databáze. Tyto kroky vám ukážou, jak vytvořit jednoduchý registrační systém s Pythonem a SQLite3.

    Krok 1: Připojte se ke stávající databázi nebo vytvořte novou

    Začněte vytvořením databáze pro vaši aplikaci nebo připojením k existující:

     import sqlite3

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

    cursor = conn.cursor()

    cursor.close()

    conn.close()

    Výše uvedený kód vytvoří objekt připojení a kurzor pro interakci s připojenou databází.

    Krok 2: Vytvořte tabulku pro uživatele

    Potřebujete tabulku pro uložení údajů, které uživatelé poskytnou při registraci. Zde je návod, jak jej vytvořit pomocí kurzoru:

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

    conn.commit()

    Tento kód vytvoří tabulku nazvanou uživatelé, pokud ve vaší databázi neexistuje. V tabulce vytvoří čtyři sloupce, do kterých budou uloženy informace o uživateli. Pole e-mailu je jedinečné, aby uživatelům zabránilo ve vytváření více účtů se stejným e-mailem.

      Top 10 způsobů, jak opravit, že obrazovka Androidu během hovorů zčerná

    Volání conn.commit je důležité pro potvrzení dotazu do databáze. Bez něj nedojde k žádným změnám v databázi.

    Pokud používáte metodu vykonatelného skriptu, můžete přidat klíčové slovo COMMIT na konec svého SQL souboru, takže nemusíte volat conn.commit.

    Krok 3: Shromážděte uživatelská data

    Funkce Pythonu usnadňují opětovné použití kódu, takže je dobré vytvořit funkci pro zpracování funkce registrace. Tato funkce shromažďuje jméno, příjmení, e-mail a heslo uživatele.

     def register_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: ")

    Krok 4: Zkontrolujte správnost hesla

    Upravte funkci register_user, abyste zajistili, že uživatel zadá stejné heslo dvakrát. Pokud ne, měli byste je vyzvat k opětovnému zadání hesla. Můžete toho dosáhnout pomocí smyčky, jako je tato:

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

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

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

    S touto změnou se uživatel nemůže zaregistrovat, pokud se jeho hesla neshodují.

    Krok 5: Zkontrolujte jedinečnost e-mailu

    Příkaz SQL, který vytváří tabulku uživatelů, definuje pole e-mailu jako jedinečné. To znamená, že databáze vrátí chybu, pokud se uživatel zaregistruje pomocí e-mailu, který již existuje. Abyste mohli správně jednat, musíte zpracovat výjimku Pythonu:

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

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

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

    Tento kód používá blok try-except ke zpracování chyby, ke které dojde z duplicitních e-mailů. Pokud databáze vyvolá chybu IntegrityError, smyčka while bude pokračovat a vyzve uživatele k zadání jiné e-mailové adresy.

      Jak zrušit odesílání zpráv na Instagramu

    U této ukázkové aplikace lze bezpečně předpokládat, že k chybě IntegrityError dojde pouze v důsledku duplicitní e-mailové adresy. Ve skutečné aplikaci pravděpodobně použijete pokročilejší zpracování chyb k vyřešení dalších problémů, které mohou nastat.

    Krok 6: Vložte data uživatele do databáze

    Nyní, když jste shromáždili a ověřili data uživatele, je čas přidat je do databáze. K tomu můžete použít SQL dotaz. Upravte svůj blok try-except takto:

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

    V upraveném bloku try-except kurzor provede operaci vložení SQL. Nakonec metoda conn.commit potvrdí operaci SQL do databáze.

    Pokud jste dodrželi všechny výše uvedené kroky, měli byste mít aplikaci, která uživatele registruje a ukládá do databáze. Můžete použít aplikaci jako Prohlížeč DB pro SQLite pro zobrazení obsahu databáze:

    Použití databází namísto typů kolekcí

    U jednoduchých databází může být jednodušší vytvořit vlastní kód. Jak se však vaše aplikace rozrůstá a databáze se stává složitější, zvažte použití nástroje, jako je Django ORM, ke zjednodušení úlohy.

    Chcete-li pokračovat v procvičování svých nízkoúrovňových databázových dovedností, zkuste implementovat přihlašovací systém jako doplněk k registračnímu programu.