2010-03-23 3 views
0

tout le monde. Je commence juste avec django, donc désolé pour une question peut-être stupide. Imaginez, j'ai une page Web avec 3 pièces logiques: contenu, menu dynamique, bannières. Il me semble ok d'avoir un modèle avec quelque chose comme:django: comment interconnecter différentes parties logiques d'une page Web

{% include "banners.html" %} 
{% include "menu.html" %} 
{% include "content.html" %} 

Mais alors, comment puis-je le faire? Chaque pièce a sa logique séparée dans une vue séparée dans son application séparée. Comment déclencher l'exécution des trois vues et rendre les trois modèles?

P.S. Existe-t-il un site similaire à sourceforge pour les applications django où je pourrais voir comment les gens font des choses dans de vrais projets?

Répondre

2

La méthode standard pour le faire est quelque chose comme suit:

Modèles:

  • Avoir un base.html qui a les bannières, le menu et un bloc de corps qui est vide.
  • Pour chaque modèle, étendez le fichier base.html et remplacez le bloc de corps.

    {% extends "base.html" %} 
        {% block body %} 
        -- Your this page's content goes here. 
        {% endblock %} 
    
  • Vous pouvez utiliser les inclusions, si nécessaire, mais préférez les extensions si possible. Inclure a été débattu pour être inclus dans le langage modèle.

Contexte Peupler:

Vous avez maintenant beaucoup de modèles avec des espaces réservés qui doivent être remplacées par les valeurs « contexte » réelles.

  • Passez le RequestContext, qui doit contenir plusieurs exigences standard pour le modèle.
  • Pour les valeurs dont vous avez besoin dans chaque modèle, écrivez un processeur de contexte de modèle.
  • Vous avez besoin de ce contexte dans ce modèle, vous le remplissez dans la vue.

Utilisation de plusieurs vues de votre application:

  • La plupart des applications écrites pour la réutilisation comprendra template_name comme paramètre standard, ainsi que extra_context. Vous devrez appeler ces vues avec ces paramètres.
  • Certaines applications se mettent en quatre pour créer une réponse évaluée paresseusement (comme TemplateResponse) afin que vous puissiez saisir le contexte qu'elles peuplent, à votre avis.

Django applications réutilisables:

Vous plaisantez? Ils sont partout sur Internet!

http://github.com/search?q=django&type=Everything

http://bitbucket.org/repo/all/?name=django

http://code.google.com/hosting/search?q=django&projectsearch=Search+projects

+0

+1 pour "Are you kidding me?" ;-) – cethegeek

Questions connexes