Ressources Magic Makers

 

Site en maintenance

 
Nous sommes actuellement entrain de mettre à jour les ressources de ce site.
Pendant la mise à jour vous pouvez retrouver tous les nouveaux contenus sur le site
 

https://lp-magicmakers.fr/

 
 

Adressage dynamique

Lorsque l’on affiche des widgets de façon dynamique, dans une boucle par exemple, on va parfois avoir besoin d’y insérer des liens.

Plus d’information sur l’affichage de widgets dynamiques.

Ces liens vont devoir être générer dynamiquement.

Créer un lien dynamique.

La première chose à laquelle on dois réfléchir c’est ce qu’il y a au bout du lien.

Prenons l’exemple d’une page affichant des articles, lorsque l’on clique sur un article on aimerai avoir la page donnant les informations de cet article en particulier. 

Nous aurons besoin pour créer cette page, de retrouver l’article en question dans la base de données.

Pour cela les informations qu’il nous faut sont : le nom de l’article, ou son ID, on essayera de prendre un élément unique à l’article pour ne pas de tromper de ligne dans la base de données.

Ici nous allons prendre l’ID de l’article.

<a href={{url_for(‘AffichageArticle’, id=element[‘_id’])}}>

  </a> 

Dans le lien nous voyons ceci : {{url_for(‘AffichageArticle’, id=element[‘_id’])}}

Url_for, nous permet ici d’aller chercher la fonction ‘AffichageArticle’ et de lui transmettre l’id qui nous intéresse. (celui de l’article sur lequel on a cliqué.)

La fonction

Le lien va nous envoyer vers la fonction ‘AffichageArticle’ il faut donc créer cette fonction avec la route qui correspond.

La route est ce qui va s’afficher dans le navigateur de l’utilisateur, on va donc mettre un truc cohérent pour l’utilisateur.

@app.route("/article/<id>")
def AffichageArticle(id):
  DB_Articles = DataBase.db.articles
  document = DB_Articles.find_one({"_id" : ObjectId(id)})
  return render_template('Article.html', Article = document)

On remarque plusieurs choses, la route contient /, en effet, l’id unique de l’article sera placer en url de la page.

La fonction à un argument (id), ce qui permet d’utiliser l’id dans la fonction pour par exemple comme ici, retrouver l’article dans la base de donnée avec DB_Articles.find_one({‘_id’ : ObjectId(id)}).