10.2 Migracija Baze Podataka i Prototip Chat Sesija
Migracija baze podataka
Integracija Supabase-a
U settings.py datoteci, postavke baze podataka su ažurirane kako bi koristile Supabase:
Ove postavke povlače konfiguraciju baze podataka iz varijabli okruženja pohranjenih u .env datoteci. Ova promjena omogućava Django aplikaciji da se poveže sa Supabase PostgreSQL bazom podataka.
Tabela sa detaljima korisnika
Supabase ima tabelu auth.users za autentifikaciju, koja pohranjuje osnovne informacije o korisnicima kao što su email i enkriptovane lozinke. Međutim, nedostaju polja za dodatne informacije o korisnicima. Da bi se to riješilo, kreirana je nova tabela pod nazivom user_detalji:
Ova tabela uključuje:
id: Primarni ključ.created_at: Vrijeme kreiranja zapisa.imeiprezime: Ime i prezime korisnika.user_id: Strani ključ koji povezuje saauth.users.
Tabela sesija četa
Da bi se upravljalo sesijama četa, kreirana je tabela pod nazivom chat_sesije:
Ova tabela uključuje:
id: Primarni ključ.created_at: Vrijeme kreiranja sesije.sesija_ime: Naziv sesije četa.user_id: Strani ključ koji povezuje saauth.users.
Tabela poruka
Za pohranu poruka razmijenjenih tokom sesija četa, kreirana je tabela pod nazivom poruke:
Ova tabela uključuje:
id: Primarni ključ.created_at: Vrijeme kreiranja poruke.chat_sesija_id: Strani ključ koji povezuje sachat_sesije.poruka_text: Sadržaj poruke.je_korisnik: Booleova vrijednost koja označava da li je poruka od korisnika.
Unapređenja Django aplikacije
Bootstrap stilizacija
Bootstrap stilizacija je dodana u HTML datoteke za prijavu i registraciju kako bi se poboljšao UI/UX.
Početna stranica
Kreirana je privremena početna stranica koja služi kao ulazna tačka za aplikaciju.
Aplikacija za rukovanje upitima
Kreirana je nova Django aplikacija pod nazivom prompting_handler za upravljanje upitima i ponašanjem chatbot-a.
Prikazi i forme
Prikazi
Datoteka views.py u prompting_handler aplikaciji sadrži sljedeći kod
Objasnjenje:
index: Prikazuje listu sesija četa za prijavljenog korisnika.
chat_session: Prikazuje detalje određene sesije četa, uključujući poruke. Upravlja slanjem poruka i odgovorima bot-a.
create_session: Omogućava prijavljenim korisnicima da kreiraju novu sesiju četa.
URL-ovi
Datoteka urls.py za prompting_handler aplikaciju:
Ovo postavlja rute za aplikaciju:
/: Prikazuje sesije četa./session/<int:session_id>/: Prikazuje određenu sesiju četa./create/: Kreira novu sesiju četa.
Forma za čat
Klasa ChatForm u forms.py:
Objasnjenje:
Definiše formu sa jednim poljem
user_input, prikazanim kao textarea za poruke korisnika.
Klase podataka
Dvije klase podataka, Poruka i ChatSesija, predstavljaju podatke dobijene iz baze podataka. One su definisane u data_klase.py:
Objasnjenje:
Poruka: Predstavlja poruku, uključujući tekst, pošiljaoca i vremensku oznaku.
ChatSesija: Predstavlja sesiju četa, uključujući njen ID, naziv, listu poruka i vremensku oznaku kreiranja.
HTML predlošci
Predložak za sesiju četa
Objasnjenje:
Prikazuje naziv sesije četa i poruke.
Pruža formu za korisnika da pošalje nove poruke.
Uključuje link za povratak na listu sesija četa.
Predložak za kreiranje sesije
Objasnjenje:
Pruža formu za kreiranje nove sesije četa sa nazivom.
Uključuje link za povratak na listu sesija četa.
Indeks predložak
Objasnjenje:
Prikazuje listu sesija četa sa linkovima ka svakoj sesiji.
Uključuje link za kreiranje nove sesije četa.