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 :

Problème d'affichage d'image [Python 3.X]


Sujet :

Django Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Problème d'affichage d'image
    Bonjour,

    Mes contacts s'affichent mais pas les images (juste l'indicateur de la présence de l'image) lorsque je fais http://localhost:8000/blog/voircontact/ pourtant l'url de l'image est bonne et existe bien dans la base de données, je ne vois pas l'erreur. lorsque j'inspecte le navigateur me dit "impossible de charger l'image" et le serveur de python me dit "GET /media/image.png HTTP/1.1" 404 2073. je suis en phase de développement, d'où l'utilisation du serveur de Django pour afficher les images.

    Si vous pouviez m'aider à trouver le problème, ce serait super.

    Merci d'avance.

    mon fichier urls:

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    from django.conf.urls import include, url, patterns
    from django.contrib import admin
    
    from django.conf import settings
    from django.conf.urls.static import static
    
    urlpatterns = patterns('blog.views',
        url(r'^$', 'accueil'), #accueil du blog
        url(r'^date$', 'date_actuelle'),
        url(r'^addition/(?P<nombre1>\d+)/(?P<nombre2>\d+)$', 'addition'),
        url(r'^article/(?P<id>\d+)-(?P<slug>.+)$', 'lire'),
        url(r'^contact/$', 'contact'),
        url(r'^saisie/article$', 'saisie_article'),
        url(r'^contactnew/$', 'nouveau_contact'),
        url(r'^voircontact/$', 'voir_contact'),
    
    )
    
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    
    Mon models:
    
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    12345678910
     
    from django.db import models
     
    class Contact(models.Model):
    	nom = models.CharField(max_length=50)
    	adresse = models.TextField()
    	photo = models.ImageField()
     
    	def __str__(self):
    		return self.nom
    ma vue:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    def voir_contact(request):
    	contacts = Contact.objects.all()
    	return render(request, 'blog/voir_contact.html', {'contacts': contacts})
    mon template:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <h1>Liste des contacts</h1>
    {% for contact in contacts %}
        <h2>{{ contact.nom }}</h2>
        Adresse : {{ contact.adresse|linebreaks }}<br/>
        <img src="{{ contact.photo.url }}"/>
    {% endfor %}
    mon setting:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
     
    import os
     
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
     
     
    # Quick-start development settings - unsuitable for production
    # See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/
     
    # SECURITY WARNING: keep the secret key used in production secret!
    SECRET_KEY = 'pahunuzkcrxyf^(#t5@k#**gi=vpf^j#rpuv#0=77paxyeg)cf'
     
    # SECURITY WARNING: don't run with debug turned on in production!
    DEBUG = True
     
    ALLOWED_HOSTS = []
     
     
    # Application definition
     
    INSTALLED_APPS = (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog',
    )
     
    MIDDLEWARE_CLASSES = (
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
        'django.middleware.security.SecurityMiddleware',
    )
     
    ROOT_URLCONF = 'crepes_bretonnes.urls'
     
    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',
                ],
            },
        },
    ]
     
    WSGI_APPLICATION = 'crepes_bretonnes.wsgi.application'
     
     
    # Database
    # https://docs.djangoproject.com/en/1.8/ref/settings/#databases
     
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        }
    }
     
     
    # Internationalization
    # https://docs.djangoproject.com/en/1.8/topics/i18n/
     
    LANGUAGE_CODE = 'fr-FR' #'en-us'
     
    TIME_ZONE = 'UTC'
     
    USE_I18N = True
     
    USE_L10N = True
     
    USE_TZ = True
     
     
    # Static files (CSS, JavaScript, Images)
    # https://docs.djangoproject.com/en/1.8/howto/static-files/
     
    STATIC_URL = '/static/'
     
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, "static"),
    )
     
     
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
    MEDIA_URL = '/media/'

  2. #2
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut


    Où stocke tu tes images ? Si elles sont dans un répertoire de ton projet, par exemple static/images il va falloir passer par la déclaration de fichiers statiques. Tu trouveras toutes les explications dans la doc officielle.
    S'il s'agit d'images dont l'url pointe sur le net, normalement il n'y a pas de soucis... je viens de faire le test et ça fonctionne bien.

    @ +


    J
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut problème résolu
    ces lignes sont à rajouter dans le fichier urls GLOBAL (j'avais zappé le GLOBAL). J'y ai quand même passé des heures puis LA LUMIERE FUT !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    from django.conf import settings
    from django.conf.urls.static import static
     
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    Merci quand même Jiyuu, je lirai mieux la doc la prochaine fois !!!

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

Discussions similaires

  1. [XML/CSS/XSL] Problème d'affichage des images "dynamiqu
    Par popol55 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 06/04/2006, 16h24
  2. Problème d'affichage d'image...
    Par fabreizhad dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 21/03/2006, 12h43
  3. problème d'affichage d'image avec mozilla
    Par lyon31 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 16/03/2006, 16h27
  4. Problème d'affichage d'image
    Par AurelBUD dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/09/2005, 11h56
  5. CSS Probléme d'affichage d'images
    Par tebonb dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 01/06/2005, 18h35

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