Dans la partie précédente de cette série de didacticiels, nous avons renseigné la page du tableau de bord de notre application avec les souhaits créés par différents utilisateurs. Nous avons également attaché un bouton similaire à chaque souhait afin qu'un utilisateur puisse aimer un souhait particulier.
Dans cette partie de la série, nous verrons comment basculer vers l'affichage similaire / différent et afficher le nombre total de «j'aime» reçus par un souhait particulier..
Commencer
Commençons par cloner la partie précédente du tutoriel de GitHub.
Une fois le code source cloné, accédez au répertoire du projet et démarrez le serveur Web..
cd PythonFlaskMySQLApp_Part7 python app.py
Pointez votre navigateur sur http: // localhost: 5002 / et vous devriez avoir l'application en cours d'exécution.
Ajouter un nombre similaire
Nous allons commencer par implémenter une fonctionnalité pour afficher le nombre total de comptes qu'un souhait particulier a généré. Quand un nouveau souhait est ajouté, nous allons faire une entrée dans le tbl_likes table. Alors modifiez la procédure stockée MySQL sp_addWish ajouter une entrée dans le tbl_likes table.
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_private int, ) BEGIN insérer dans tbl_wish (wish_title, wish_description, wish_user_id, wish_date, wish_file_path, wish_private, wish_accomplished) valeurs (p_title, p_description, p_user_id, NOW (), p_file_path, p_isile_private, p_is_done) SET @last_id = LAST_INSERT_ID (); insérer dans tbl_likes (wish_id, user_id, wish_like) valeurs (@last_id, p_user_id, 0); FIN $$ DELIMITER;
Comme indiqué dans le code de procédure stockée ci-dessus, après avoir inséré le souhait dans le tbl_wish table, nous avons récupéré le dernier inséré ID et inséré les données dans tbl_likes table.
Ensuite, nous devons modifier le sp_GetAllWishes procédure stockée pour inclure le nombre de goûts que chaque souhait a recueillis. Nous utiliserons une fonction MySQL pour obtenir le nombre total de souhaits. Alors créez une fonction appelée obtenir la somme qui prendra le souhait ID et renvoyer le nombre total de j'aime.
DELIMITER $$ CREATE DEFINER = "root" @ 'localhost' FUNCTION 'getSum' (p_wish_id int) RETURNS int (11) BEGIN sélectionner la somme (wish_like) dans @sm à partir de tbl_likes où wish_id = p_wish_id; RETOUR @sm; FIN $$ DELIMITER;
Maintenant, appelez la fonction MySQL ci-dessus appelée obtenir la somme dans la procédure stockée sp_GetAllWishes pour obtenir le nombre total de "j'aime" pour chaque souhait.
DELIMITER $$ CREATE DEFINER = "root" @ 'localhost' PROCEDURE 'sp_GetAllWishes' () BEGIN Sélectionnez wish_id, wish_title, wish_description, wish_file_path, getSum (wish_id) à partir de tbl_wish où wish_private = 0; FIN $$ DELIMITER;
Modifier le getAllWishes Méthode Python pour inclure le nombre similaire. Tout en itérant le résultat renvoyé par la procédure stockée MySQL, incluez le champ like comme indiqué:
pour le souhait dans le résultat: wish_dict = 'Id': wish [0], 'Titre': wish [1], 'Description': wish [2], 'FilePath': wish [3], 'Like': wish [ 4] Wish_dict.append (Wish_dict)
Modifier le CreateThumb Méthode JavaScript pour créer une étendue supplémentaire que nous utiliserons pour afficher le nombre de pages similaires.
var likeSpan = $ ('') .attr (' aria-hidden ',' true '). html (' '+ like +' like (s) ');
Et annexer le comme Span au paragraphe parent p. Voici le modifié CreateThumb Fonction JavaScript.
Fonction CreateThumb (id, titre, desc, chemin du fichier, comme) var mainDiv = $ ('
') .attr (' classe ',' col-sm-4 col-md-4 '); var thumbNail = $ ('
') .attr (' classe ',' miniature '); var img = $ ('') .attr (' src ': chemin du fichier,' rendu du détenteur de données ': true,' style ':' height: 150px; width: 150px; display: block '); var caption = $ ('
') .attr (' classe ',' légende '); var titre = $ ('