În partea anterioară a acestei serii de tutorial, am populat pagina de bord a aplicației noastre cu dorințele create de diferiți utilizatori. De asemenea, am atașat un buton asemănător fiecărei dorințe, astfel încât un utilizator să-i placă o anumită dorință.
În această parte a seriei, vom vedea cum să comutați afișajul similar / spre deosebire de afișare și să afișăm numărul total de plăceri primite de o anumită dorință.
Noțiuni de bază
Să începem prin clonarea părții anterioare a tutorialului de la GitHub.
Odată ce codul sursă a fost clonat, navigați la directorul de proiect și porniți serverul web.
cd PythonFlaskMySQLApp_Part7 Python app.py
Punctați browser-ul dvs. la http: // localhost: 5002 / și ar trebui să aveți aplicația să ruleze.
Adăugarea unui număr asemănător
Vom începe prin implementarea unei funcții pentru a arăta numărul total de conturi pe care le-a obținut o anumită dorință. Când se adaugă o nouă dorință, vom face o intrare în tbl_likes masa. Deci modificați procedura memorată MySQL sp_addWish pentru a adăuga o intrare în tbl_likes masa.
(IN) p_descriere varchar (1000), IN p_user_id bigint, IN p_file_path varchar (200), int p_is_private int, IN p_is_done int ) BEGIN introduceți în valorile tbl_wish (wish_title, wish_description, wish_user_id, wish_date, wish_file_path, wish_private, wish_accomplished) valori (p_title, p_description, p_user_id, NOW (), p_file_path, p_is_private, p_is_done); SET @last_id = LAST_INSERT_ID (); introduceți în valorile tbl_likes (desire_id, user_id, wish_like) (@last_id, p_user_id, 0); END $$ DELIMITER;
După cum se vede în codul procedurii stocate mai sus, după introducerea dorinței în tbl_wish tabel, am luat ultimul inserat ID-ul și a introdus datele în tbl_likes masa.
Apoi, trebuie să modificăm sp_GetAllWishes procedură stocată pentru a include numărul de plăceri pe care le-a obținut fiecare dorință. Vom folosi o funcție MySQL pentru a obține numărul total de dorințe. Deci, creați o funcție numită obține suma care va lua dorinta ID-ul și returnează numărul total de aprecieri.
DELIMITER $$ CREATE DEFINER = "root" @ 'localhost' FUNCTION 'getSum' (p_wish_id int) RETURNS int (11) BEGIN selectați suma (wish_like) în @sm din tbl_likes where wish_id = p_wish_id; RETURN @sm; END $$ DELIMITER;
Acum, apelați funcția MySQL de mai sus numită obține suma în procedura stocată sp_GetAllWishes pentru a obține numărul total de plăceri pentru fiecare dorință.
DELIMITER $$ CREATE DEFINER = "root" @ 'localhost' PROCEDURĂ 'sp_GetAllWishes' () BEGIN selectați wish_id, wish_title, wish_description, wish_file_path, getSum (wish_id) din tbl_wish where wish_private = 0; END $$ DELIMITER;
Modificați getAllWishes Metoda Python pentru a include contorul similar. În timp ce iterați rezultatul returnat din procedura stocată MySQL, includeți câmpul asemănător așa cum este arătat:
pentru dorință în rezultatul: wish_dict = 'Id': dorință [0], 'Titlu': dorință [1], 'Descriere': wish [2], 'FilePath' 4] wishes_dict.append (wish_dict)
Modificați CreateThumb Metoda JavaScript pentru a crea un interval suplimentar pe care îl vom folosi pentru a afișa numărarea ca și cum ar fi.
var caSpan = $ ('') .attr (' aria-ascuns ',' adevărat '). html (' '+ ca +' ca (s) ');
Și adăugați-o likeSpan la paragraful părinte p. Aici este modificat CreateThumb Funcția JavaScript.
funcția CreateThumb (id, titlu, desc, filepath, ca) var mainDiv = $ ('