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 :

utiliser css avec django


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 140
    Par défaut utiliser css avec django
    Bonjour a tous,
    Comme le mentionne le titre je souhaiterais utiliser une feuille de style dans mes modules django. J'ai cherché sur internet et sur les forum, mais les configurations proposés des différents fichiers me ramènent toujours aux mêmes problèmes.

    voici ma configuration:

    settings.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    MEDIA_ROOT = '/home/eric/siteDjango/public/'
    MEDIA_URL = 'http://127.0.0.1:8000/public/'
    STATIC_DOC_ROOT = '/home/eric/siteDjango/site_media/'
    url.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    urlpatterns = patterns('',
        (r'^nouvelAn/',include('nouvelAn.urls')),
    )
     
    if settings.DEBUG:
        urlpatterns += patterns('',
            (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_DOC_ROOT}),
        )
    index.html du template nouvelAn
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <link rel="stylesheet" href="{{ MEDIA_URL }}css/style.css" />
    en changeant des petites choses je me retrouve confronté aux mêmes problèmes récurrents :

    - MEDIA_URL du template n'est pas définit et j'ai donc une requête sur http://127.0.0.1:8000/nouvelAn/css/style.css alors que mon répertoire css est dans home/eric/siteDjango/site_media/

    - la requête ne 'match' pas avec la configuration url, même en remontant style.css d'un niveau et en changeant le chemin du template.

    - j'ai un erreur 404 dans le code html de ma page générée par django, sur la balise link

    j'ai essayé beaucoup de configurations en vain, et j'ai lu beaucoup de documentation sans parvenir a comprendre ce qui ne va pas . un peu d'aide serait la bienvenue , merci !

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2010
    Messages : 140
    Par défaut solution alternative
    Bonjour a tous, j'ai trouvé une alternative a ce problème d'acces aux fichiers média. je ne sais pas si c'est sécurisé et j'aimerais un avis.

    Le système que j'ai trouvé consiste à faire une redirection url dans le fichier url.py racine qui redirige execute un script qui prends deux arguments, un request et un path, cette fonction fait un fopen sur le chemin absolu de mon répertoire média + le paramètre path et renvoie HttpResponse(fichierOuvert)

    je ne sais pas ce que ca vaut en termes de sécurité, mais ca marche...

  3. #3
    Membre Expert
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Par défaut
    Bonjour,

    - J'avais lu ton post il y a quelques temps et trop de questions d'un coup. Pas eu le courage de répondre à ce moment.

    - Concernant ton 2ième message, d'après moi, très mauvaise idée d'ouvrir un fichier et de le renvoyer.

    1) Si le path n'est pas filtré et qu'il provient d'une partie de l'url, tu as un gros trou de sécurité.
    2) Tu perds tout l'avantage des templates.

    - Je ne répond pas directement à tes questions du 1er post, mais je te joint une projet exemple sur la base de ce que tu as commencé.

    - Tu décompresses le fichier, tu te déplaces dans le répertoire et : manage.py runserver

    Dans le navigateur, tu vas sur http://localhost:8000/nouvelAn/index/

    C'est un exemple minimal qui essaye de répondre à tes interrogations. Pour l'appel du CSS, j'utilise {{ MEDIA_URL }} pour coller à ton exemple.

    P.S. : Réalisé avec Django 1.2.4 (dernière version)
    P.S. 2: Désolé pour la copie honteuse de http://www.csszengarden.com/tr/francais/ dans l'exemple, pas le courage de faire une page html propre.
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Utilisation des CSS avec PHP
    Par smilly dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 18/01/2013, 17h01
  2. Utilisation du CSS avec PHP
    Par L'aigle de Carthage dans le forum Langage
    Réponses: 4
    Dernier message: 18/03/2008, 14h42
  3. [CSS] comment puis utiliser le meme css avec 2 nom different
    Par pierrot10 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 08/09/2006, 13h51
  4. Réponses: 12
    Dernier message: 02/02/2004, 13h41

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