In het vorige deel van deze tutorialreeks hebben we de dashboardpagina van onze applicatie gevuld met de wensen die door verschillende gebruikers zijn gemaakt. We hebben ook een soortgelijke knop aan elke wens gekoppeld, zodat een gebruiker een bepaalde wens zou kunnen waarderen.
In dit deel van de serie zullen we zien hoe je de like / unlike-weergave kunt schakelen en het totale aantal likes dat een bepaalde wens ontvangt.
Ermee beginnen
Laten we beginnen met het klonen van het vorige deel van de tutorial vanuit GitHub.
Nadat de broncode is gekloond, navigeert u naar de projectdirectory en start u de webserver.
cd PythonFlaskMySQLApp_Part7 python app.py
Richt uw browser op http: // localhost: 5002 / en u zou de applicatie moeten laten draaien.
Een leuk aantal toevoegen
We beginnen met het implementeren van een functie om het totale aantal tellingen te tonen dat een bepaalde wens heeft verzameld. Wanneer een nieuwe wens wordt toegevoegd, doen we een aantekening bij de tbl_likes tafel. Wijzig dus de opgeslagen MySQL-procedure sp_addWish om een item toe te voegen aan de tbl_likes tafel.
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 invoegen in tbl_wish (wish_title, wish_description, wish_user_id, wish_date, wish_file_path, wish_private, wish_accomplished) values (p_title, p_description, p_user_id, NOW (), p_file_path, p_is_private, p_is_done); SET @last_id = LAST_INSERT_ID (); invoegen in tbl_likes (wish_id, user_id, wish_like) waarden (@last_id, p_user_id, 0); END $$ DELIMITER;
Zoals te zien in de bovenstaande code opgeslagen procedure, na het invoegen van de wens in de tbl_wish tabel, hebben we de laatste ingevoegd ID kaart en de gegevens ingevoegd in tbl_likes tafel.
Vervolgens moeten we de sp_GetAllWishes opgeslagen procedure om het aantal vind-ik-leuks op te nemen dat elke wens heeft verzameld. We zullen gebruik maken van een MySQL-functie om het totale aantal wensen te krijgen. Dus maak een functie genaamd getSum wat de wens zal aannemen ID kaart en retourneer het totale aantal vind-ik-leuks.
DELIMITER $$ CREATE DEFINER = "root" @ 'localhost' FUNCTION 'getSum' (p_wish_id int) RETOUREN int (11) BEGIN selecteer sum (wish_like) in @sm van tbl_likes waarbij wish_id = p_wish_id; RETURN @sm; END $$ DELIMITER;
Bel nu de bovenstaande MySQL-functie genaamd getSum in de opgeslagen procedure sp_GetAllWishes om het totale aantal vind-ik-leuks voor elke wens te krijgen.
DELIMITER $$ CREATE DEFINER = "root" @ 'localhost' PROCEDURE 'sp_GetAllWishes' () BEGIN selecteer wish_id, wish_title, wish_description, wish_file_path, getSum (wish_id) van tbl_wish where wish_private = 0; END $$ DELIMITER;
Wijzig de getAllWishes Python-methode om de like-telling op te nemen. Terwijl u het resultaat herhaald van de opgeslagen MySQL-procedure herhaalt, neemt u het like-veld op zoals afgebeeld: