Nella parte precedente di questa serie di tutorial, abbiamo popolato la pagina dashboard della nostra applicazione con i desideri creati da diversi utenti. Abbiamo anche associato un pulsante simile a ciascun desiderio in modo che un utente potesse apprezzare un particolare desiderio.
In questa parte della serie, vedremo come attivare / disattivare la visualizzazione simile e mostrare il numero totale di Mi piace ricevuti da un particolare desiderio.
Iniziare
Iniziamo clonando la parte precedente del tutorial da GitHub.
Una volta clonato il codice sorgente, accedere alla directory del progetto e avviare il server web.
cd PythonFlaskMySQLApp_Part7 python app.py
Puntare il browser su http: // localhost: 5002 / e si dovrebbe avere l'applicazione in esecuzione.
Aggiungere un conteggio simile
Inizieremo implementando una funzione per mostrare il numero totale di conteggi che un particolare desiderio ha raccolto. Quando viene aggiunto un nuovo desiderio, faremo un ingresso nel tbl_likes tavolo. Quindi modificare la procedura memorizzata MySQL sp_addWish aggiungere una voce nel tbl_likes tavolo.
DELIMITER $$ CREATE DEFINER = "root" @ 'localhost' PROCEDURE 'sp_addWish' (IN p_title varchar (45), IN p_description varchar (1000), IN p_user_id bigint, IN p_file_path varchar (200), IN p_is_private int, IN p_is_done int ) BEGIN insert in 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 (); inserire i valori di tbl_likes (wish_id, user_id, wish_like) (@last_id, p_user_id, 0); END $$ DELIMITER;
Come visto nel codice di procedura memorizzato sopra, dopo aver inserito il desiderio nel file tbl_wish tabella, abbiamo recuperato l'ultimo inserito ID e inserito i dati in tbl_likes tavolo.
Successivamente, abbiamo bisogno di modificare il sp_GetAllWishes stored procedure per includere il numero di Mi piace che ogni desiderio ha raccolto. Faremo uso di una funzione MySQL per ottenere il numero totale di desideri. Quindi creare una funzione chiamata EsprSomma che prenderà il desiderio ID e restituire il numero totale di Mi piace.
DELIMITER $$ CREATE DEFINER = "root" @ 'localhost' FUNCTION 'getSum' (p_wish_id int) RETURNS int (11) BEGIN seleziona sum (wish_like) in @sm da tbl_likes dove wish_id = p_wish_id; RITORNO @sm; END $$ DELIMITER;
Ora chiama la funzione MySQL sopra richiamata EsprSomma nella stored procedure sp_GetAllWishes per ottenere il numero totale di Mi piace per ogni desiderio.
DELIMITER $$ CREATE DEFINER = "root" @ 'localhost' PROCEDURE 'sp_GetAllWishes' () INIZIA seleziona wish_id, wish_title, wish_description, wish_file_path, getSum (wish_id) da tbl_wish dove wish_private = 0; END $$ DELIMITER;
Modifica il getAllWishes Metodo Python per includere il conteggio simile. Durante l'iterazione del risultato restituito dalla stored procedure MySQL, includere il campo simile come mostrato: