IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

Questions / Bonnes pratiques d'utilisation des gabarits (templates)


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Juin 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 12
    Par défaut Questions / Bonnes pratiques d'utilisation des gabarits (templates)
    Bonjour,
    Un projet Django peut s'appuyer sur plusieurs "apps". Pour que chaque app soit la plus autonome, il est recommandé que les templates soient mis dans le répertoire app/template/app.
    Mais si on souhaite que le projet ait un visuel homogène on va vouloir appliquer du css commun, avoir une structure de page commune.... On est sensé faire quoi? dupliquer le css dans chaque app?
    Merci de vos lumières

    Richard

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Salut,

    Citation Envoyé par RichardUW Voir le message
    On est sensé faire quoi? dupliquer le css dans chaque app?
    Merci de vos lumières
    Pour le fun, demandez a ChatGPT.

    Ceci dit du côté Django "strict", les répertoires dans lequel une application va chercher ses CSS est configurable.
    De plus une application peut utiliser une autre application permettant une mise en commun de bien plus d'objets que les CSS.

    Et comme toujours lorsqu'il y a plusieurs solutions, avantages et inconvénients de chacune dépendront du projet/contexte... et ce sera à vous de justifier un choix (ne pas connaître d'autres solutions est un non choix qu'on peut faire par défaut...).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 084
    Par défaut
    Bonjour,

    Mais si on souhaite que le projet ait un visuel homogène on va vouloir appliquer du css commun, avoir une structure de page commune.... On est sensé faire quoi? dupliquer le css dans chaque app?
    Non, tu te crées un dossier css et tu y insères des dossiers, fichiers css, en fonction de tes besoins et de ton organisation.

    Quand tu précises un fichier css, tu as une ligne du style,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    href="{% static 'css/style.css' %}">
    Comme tu vois ci-dessus, c'est toi qui spécifie l'endroit où se trouve tes css.

  4. #4
    Membre averti
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Juin 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2014
    Messages : 12
    Par défaut
    Merci pour vos réponses.

    OK pour les fichiers statiques de type javascript et css.

    Si maintenant je souhaite que tous les gabarits de mes apps s'appuie par un extend sur une base commune contenue dans base.html?

    Que me recommandez vous comme répertoire de stockage (répertoire template à la racine du projet?)?

    Comment je fais référence à ce fichier projet/template/projet/base.html depuis un gabarit situé dans une app tel que projet/myapp/template/myapp/extension.html?

    (comme vous vous en doutez, je ne maîtrise pas la manière dont Django construits les chemins d'accès :-()

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Citation Envoyé par RichardUW Voir le message
    Que me recommandez vous comme répertoire de stockage (répertoire template à la racine du projet?)?
    Arrêtez de vouloir une solution toute faite: prenez le temps d'étudier les différentes possibilités et choisissez celle qui semble la plus adaptée au cycle de vie de votre projet/applications. Ce qui suppose savoir un minimum les mettre en œuvre...

    De plus, choisir c'est prendre le risque de se tromper, risque qui se mesure au coût de la mise en place d'autres méthodes.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 084
    Par défaut
    pareil, tu crées un répertoire templates, un fichier base.html dans la racine du projet et tu indiques dans ton fichier settings.py où ta base se trouve

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    TEMPLATES = [    {
            "BACKEND": "django.template.backends.django.DjangoTemplates",
            "DIRS": [os.path.join(BASE_DIR, "templates")],
            "APP_DIRS": True,
            "OPTIONS": {
                "context_processors": [
                    "django.template.context_processors.debug",
                    "django.template.context_processors.request",
                    "django.contrib.auth.context_processors.auth",
                    "django.contrib.messages.context_processors.messages",
                ],
            },
        },
     
    ]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Des bonnes pratiques et toujours des questions
    Par dafpp dans le forum Débuter
    Réponses: 29
    Dernier message: 04/12/2013, 00h26
  2. [Procédures stockées] Bonnes pratiques de gestion des erreurs
    Par jbrasselet dans le forum Développement
    Réponses: 4
    Dernier message: 04/02/2009, 00h14
  3. Pratique d'utilisation des mutexes
    Par FabaCoeur dans le forum C
    Réponses: 4
    Dernier message: 29/01/2009, 15h08
  4. Réponses: 3
    Dernier message: 29/12/2008, 16h31
  5. [Python] Est-ce une bonne idée d'utiliser des modules pour stocker des objets ?
    Par Neolander dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 05/04/2008, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo