Creați această aplicație pentru a afla despre crearea unui tabel de bază de date și popularea acestuia cu date.

Python are un suport excelent pentru baze de date încorporat în biblioteca sa standard, astfel încât să puteți crea și interacționa cu o bază de date fără a vă baza pe cadre externe precum Django ORM.

SQLite este ușor și ușor de integrat cu Python. Descoperiți principiile de bază ale programării bazelor de date în Python cu o aplicație simplă de înregistrare a utilizatorilor.

Cum se creează o bază de date în Python

Puteți găsi codul folosit pentru acest tutorial în acest articol Depozitul GitHub

Pentru a crea și a interacționa cu o bază de date în Python, aveți nevoie de două lucruri principale: a conexiune si a cursor.

O conexiune vă ajută să vă conectați la o bază de date existentă sau să creați una nouă. Iată cum să creați o conexiune la baza de date în Python cu SQLite:

import sqlite3

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

# Close the connection
conn.close()

instagram viewer

The conectați() metoda preia calea către o bază de date existentă. Dacă nu există o bază de date la calea specificată, va crea una. Ar trebui să închideți conexiunea la baza de date când ați terminat de interacționat cu baza de date.

Un cursor vă ajută să interacționați cu baza de date conectată. Veți folosi un cursor pentru a executa interogări SQL în programul dvs. Python. Iată cum se creează un cursor:

cursor = conn.cursor()

# Close the cursor
cursor.close()

Puteți crea un cursor apelând la cursor() metoda pe un obiect de conexiune deschisă.

Cum să executați o tranzacție de bază de date în Python

Folosind un cursor, puteți rula instrucțiuni SQL, interogări sau scripturi, pentru a citi sau scrie date sau pentru a modifica structura bazei de date.

Există trei metode principale pe care le puteți utiliza pentru a executa o tranzacție de bază de date.

  1. Cursor.execută. Această metodă va rula o singură instrucțiune SQL. Iată cum îl folosiți:
    cursor.execute(
    CREATE TABLE IF NOT EXISTS users (
    name TEXT,
    age INTEGER
    )
    )
    Acest cod numește a executa metoda pe un cursor, trecându-i un șir care conține o instrucțiune SQL.
  2. Cursor.executemany. Această metodă vă permite să rulați aceeași instrucțiune SQL de mai multe ori, cu parametri diferiți de fiecare dată. Este nevoie de două argumente: instrucțiunea SQL și una iterabilă. O bună utilizare este să inserați mai multe obiecte în baza de date simultan:
    data = [
    ('Alice', 25),
    ('Bob', 30),
    ('Charlie', 22)
    ]

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

    Codul de mai sus folosește executorii metoda de a introduce valori în baza de date de mai multe ori.

    Rețineți că ? substituenți în instrucțiunea SQL. Metoda executemany le va înlocui pe acestea cu valorile corespunzătoare pentru fiecare obiect.

  3. Cursor.executescript. După cum sugerează și numele, această metodă va executa un script SQL pentru dvs. Puteți scrie instrucțiunile dvs. SQL într-un fișier diferit și le puteți rula cu executescript metodă:
    with open("path/to/script.sql") as file:
    sql_script = file.read()

    cursor.executescript(sql_script)

Cum să construiți o aplicație de înregistrare cu Python și SQLite3

Logica din spatele unei aplicații de înregistrare implică obținerea informațiilor utilizatorului cu Python și stocarea lor într-o bază de date. Acești pași vă vor arăta cum să creați un sistem simplu de înregistrare cu Python și SQLite3.

Pasul 1: Conectați-vă la o bază de date existentă sau creați una nouă

Începeți prin a crea o bază de date pentru aplicația dvs. sau conectați-vă la una existentă:

import sqlite3

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

cursor = conn.cursor()

# your app's code goes here

cursor.close()

conn.close()

Codul de mai sus creează un obiect de conexiune și un cursor pentru a interacționa cu baza de date conectată.

Pasul 2: Creați un tabel pentru utilizatori

Aveți nevoie de un tabel pentru a stoca datele pe care utilizatorii le vor furniza la înregistrare. Iată cum să creați unul cu cursorul:

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

conn.commit()

Acest cod va crea un tabel numit utilizatorii dacă nu există în baza ta de date. Acesta creează patru coloane în tabel pentru a păstra informații despre utilizator. Câmpul de e-mail este unic pentru a împiedica utilizatorii să creeze mai multe conturi cu același e-mail.

Apelul la conn.commit este important să trimiteți interogarea în baza de date. Fără el, nu vor exista modificări în baza de date.

Dacă utilizați metoda executescript, puteți adăuga cuvântul cheie COMMIT la sfârșitul fișierului SQL, astfel încât să nu trebuie să apelați conn.commit.

Pasul 3: Colectați datele utilizatorului

Funcțiile Python facilitează reutilizarea codului, deci este o idee bună să creați o funcție care să gestioneze caracteristica de înregistrare. Această funcție colectează numele utilizatorului, numele de familie, e-mailul și parola.

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

Pasul 4: Verificați corectitudinea parolei

Modificați register_user funcția pentru a se asigura că utilizatorul introduce aceeași parolă de două ori. Dacă nu, ar trebui să le cereți să introducă din nou parola. Puteți realiza asta cu o buclă ca aceasta:

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

Cu această modificare, un utilizator nu se poate înregistra decât dacă parolele lor se potrivesc.

Pasul 5: Verificați unicitatea e-mailului

Instrucțiunea SQL care creează tabelul utilizatori definește câmpul de e-mail ca unic. Aceasta înseamnă că baza de date va returna o eroare dacă un utilizator se înscrie cu un e-mail care există deja. Pentru a acționa corespunzător, trebuie gestionează excepția Python:

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

Acest cod folosește blocul try-except pentru a gestiona eroarea care va apărea din e-mailurile duplicate. Dacă baza de date afișează o IntegrityError, bucla while va continua, solicitând utilizatorului să introducă o altă adresă de e-mail.

Pentru această aplicație exemplu, este sigur să presupunem că o IntegrityError va apărea numai ca urmare a unei adrese de e-mail duplicate. Într-o aplicație reală, probabil că veți folosi o gestionare mai avansată a erorilor pentru a rezolva alte probleme care ar putea apărea.

Pasul 6: Introduceți datele utilizatorului în baza de date

Acum că ați colectat și verificat datele utilizatorului, este timpul să le adăugați la baza de date. Poți să folosești o interogare SQL să facă asta. Modificați blocul try-except astfel:

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

În blocul try-except modificat, cursorul execută o operație de inserare SQL. În cele din urmă, cel conn.commit metoda comite operația SQL în baza de date.

Dacă ați urmat toți pașii de mai sus, ar trebui să aveți o aplicație care înregistrează utilizatorii și îi salvează în baza de date. Puteți folosi o aplicație ca DB Browser pentru SQLite pentru a vizualiza conținutul bazei de date:

Folosind baze de date în loc de tipuri de colecție

Pentru baze de date simple, s-ar putea să vă fie mai ușor să rulați propriul cod. Cu toate acestea, pe măsură ce aplicația dvs. crește și baza de date devine mai complexă, luați în considerare utilizarea unui instrument precum Django ORM pentru a simplifica sarcina.

Pentru a continua să vă exersați abilitățile de bază de date de nivel scăzut, încercați să implementați un sistem de conectare pentru a completa programul de înregistrare.