Django-fr

Forum

#1 17-04-2012 14:05:30

sushi
Membre
Inscription : 17-04-2012
Messages : 9

[Résolu]Template+ affichage page HTML simple

Bonjour,

Je débute sur ce framework (je n'ai jamais utilisé de framework auparavant pour développer mes pages web).

J'ai lu les 4 parties du tutoriel, j'utilise django 1.4 sur windows 7 64 bits (je ne peux pas travailler sur une station Linux/Unix ).

J'ai compris le principe du pattern MTV de django mais j'ai quelques problèmes au niveau de mes templates!

En fait, je viens de commencer mon projet (après avoir fait des tests en suivant le tuto auparavent) et je dois développer un portail avec un service web.

Pour le moment, j'essaie d'afficher ma page d'accueil, cette page d'accueil est une page html simple sans tag django.

Donc quand je vais sur une des ces urls (/ ou /acceuil/) la page accueil.html est censé s'afficher or elle s'affiche que partiellement!

Je n'ai pas besoin de module pour le moment car la page accueil est très simple est n'a pas besoin de BDD.

J'ai bien configuré mon URL_CONF puisque j'ai aucune erreur de django.

Voici mon code:

url.py:

urlpatterns = patterns('cloud_of_dreams.portail.views',   
    url(r'^$', 'acceuil'),
    url(r'^acceuil/$', 'acceuil'),
)

views.py

# Create your views here.
from django.template import Context, loader
from django.http import HttpResponse

def acceuil(request):
    t = loader.get_template('acceuil.html')
    return HttpResponse(t)

et mon template la page acceuil.html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Bienvenue sur Cloud of dreams</title>
    </head>

    <body>
        <p>
        <h1>Bienvenue sur le site en construction!</h1>
       
        Pour s'inscrire cliquer <a href="inscription/">là</a>.
        </p>
    </body>
</html>

J'ai essayé d'enlever le DOCTYPE les balises head,html,body pour ne laisser que le strict minimum mais ma page ne s'affiche que partiellement.

En espérant que vous puissiez m'aider,

Cordialement,

sushi

Dernière modification par sushi (18-04-2012 09:24:52)

Hors ligne

#2 17-04-2012 14:15:49

Julien Bouquillon [revolunet]
Membre
Inscription : 07-10-2011
Messages : 22

Re : [Résolu]Template+ affichage page HTML simple

Salut et bienvenue smile

Peux-tu définir "partiellement" ?

Si tu regardes la source de la page directement, est-elle complete ? C'est
peut un problème de HTML tout simplement



Le 17 avril 2012 15:05, sushi <sushisnet _AT_ gmail.com> a écrit :

> Bonjour,
>
> Je débute sur ce framework (je n'ai jamais utilisé de framework
> auparavant pour développer mes pages web).
>
> J'ai lu les 4 parties du tutoriel, j'utilise django 1.4 sur windows 7 64
> bits (je ne peux pas travailler sur une station Linux/Unix ).
>
> J'ai compris le principe du pattern MTV de django mais j'ai quelques
> problèmes au niveau de mes templates!
>
> En fait, je viens de commencer mon projet (après avoir fait des tests en
> suivant le tuto auparavent) et je dois développer un portail avec un
> service web.
>
> Pour le moment, j'essaie d'afficher ma page d'accueil, cette page
> d'accueil est une page html simple sans tag django.
>
> Donc quand je vais sur une des ces urls (/ ou /acceuil/) la page
> accueil.html est censé s'afficher or elle s'affiche que partiellement!
>
> Je n'ai pas besoin de module pour le moment car la page accueil est très
> simple est n'a pas besoin de BDD.
>
> J'ai bien configuré mon URL_CONF puisque j'ai aucune erreur de django.
>
> Voici mon code:
>
> url.py:
>
> urlpatterns = patterns('cloud_of_dreams.portail.views',
>        url(r'^$', 'acceuil'),
>        url(r'^acceuil/$', 'acceuil'),
> )
>
> views.py
>
> # Create your views here.
> from django.template import Context, loader
> from django.http import HttpResponse
>
> def acceuil(request):
>        t = loader.get_template('acceuil.html')
>        return HttpResponse(t)
>
> et mon template la page acceuil.html:
>
> <!DOCTYPE html>
> <html>
>    <head>
>        <meta charset="utf-8" />
>        <title>Bienvenue sur Cloud of dreams</title>
>    </head>
>
>    <body>
>                <p>
>                <h1>Bienvenue sur le site en construction!</h1>
>
>                Pour s'inscrire cliquer <a href="inscription/">là</a>.
>                </p>
>    </body>
> </html>
>
> J'ai essayé d'enlever le DOCTYPE les balises head,html,body pour ne
> laisse que le strict minimum mais ma page ne s'affiche que partiellement.
>
> En espérant que vous puissiez m'aider,
>
> Cordialement,
>
> sushi
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>

Hors ligne

#3 17-04-2012 14:18:30

Guillaume Cisco
Membre
Inscription : 12-01-2012
Messages : 5

Re : [Résolu]Template+ affichage page HTML simple

Tu as simplement un problème d'organisation HTML.
Une balise *h1* ne devrait pas se retrouver a l'intérieur d'une balise *p*,
cela ne suit pas la norme fixee par le W3C.

D'ailleurs les navigateurs interprètent ces erreurs différemment, dans le
cas de firefox par exemple il ne t'affichera pas les donnees car il les
considere incohérentes.

Remplace simplement ton code html par cela :
<h1>Bienvenue sur le site en construction!</h1>

<p>Pour s'inscrire cliquer <a href="/inscription/">là</a>.</p>

2012/4/17 sushi <sushisnet _AT_ gmail.com>

> Bonjour,
>
> Je débute sur ce framework (je n'ai jamais utilisé de framework
> auparavant pour développer mes pages web).
>
> J'ai lu les 4 parties du tutoriel, j'utilise django 1.4 sur windows 7 64
> bits (je ne peux pas travailler sur une station Linux/Unix ).
>
> J'ai compris le principe du pattern MTV de django mais j'ai quelques
> problèmes au niveau de mes templates!
>
> En fait, je viens de commencer mon projet (après avoir fait des tests en
> suivant le tuto auparavent) et je dois développer un portail avec un
> service web.
>
> Pour le moment, j'essaie d'afficher ma page d'accueil, cette page
> d'accueil est une page html simple sans tag django.
>
> Donc quand je vais sur une des ces urls (/ ou /acceuil/) la page
> accueil.html est censé s'afficher or elle s'affiche que partiellement!
>
> Je n'ai pas besoin de module pour le moment car la page accueil est très
> simple est n'a pas besoin de BDD.
>
> J'ai bien configuré mon URL_CONF puisque j'ai aucune erreur de django.
>
> Voici mon code:
>
> url.py:
>
> urlpatterns = patterns('cloud_of_dreams.portail.views',
>        url(r'^$', 'acceuil'),
>        url(r'^acceuil/$', 'acceuil'),
> )
>
> views.py
>
> # Create your views here.
> from django.template import Context, loader
> from django.http import HttpResponse
>
> def acceuil(request):
>        t = loader.get_template('acceuil.html')
>        return HttpResponse(t)
>
> et mon template la page acceuil.html:
>
> <!DOCTYPE html>
> <html>
>    <head>
>        <meta charset="utf-8" />
>        <title>Bienvenue sur Cloud of dreams</title>
>    </head>
>
>    <body>
>                <p>
>                <h1>Bienvenue sur le site en construction!</h1>
>
>                Pour s'inscrire cliquer <a href="inscription/">là</a>.
>                </p>
>    </body>
> </html>
>
> J'ai essayé d'enlever le DOCTYPE les balises head,html,body pour ne
> laisse que le strict minimum mais ma page ne s'affiche que partiellement.
>
> En espérant que vous puissiez m'aider,
>
> Cordialement,
>
> sushi
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>

Hors ligne

#4 18-04-2012 03:04:01

sushi
Membre
Inscription : 17-04-2012
Messages : 9

Re : [Résolu]Template+ affichage page HTML simple

Merci de m'avoir répondu!

J'ai modifier mon code HTML mais cela ne fonctionne toujours pas.

Voici ce que ça affiche lorsque je met la DTD les entêtes et tout le tintouin (html,head,body):

<Text Node: '<!DOCTYPE html>
<html>
  '>

Et lorsque j'enlève la DTD les balises html,body,head voici le code source:

<Text Node: '    <h1>Bienvunue sur le sit'>

Hors ligne

#5 18-04-2012 09:24:33

sushi
Membre
Inscription : 17-04-2012
Messages : 9

Re : [Résolu]Template+ affichage page HTML simple

C'est bon j'ai trouvé le problème.

En regardant la doc, j'ai vu que mon loader n'était pas complet, il fallait que je renvoie le render.

Donc dans mes vu où je laod mes templates j'ai modifié la lige comme ça:

t = loader.get_template('acceuil.html').render(Context({}))

En fait, je pensais que ce n'était pas obligatoire, je pensais qu'il suffisait juste de charger le template avec le get et que le render était "optionnel" (on l'utilisais si jamais on avait besoin de faire passer des variables au template).

problème résolu donc!

Hors ligne

#6 18-04-2012 09:27:57

Guillaume Cisco
Membre
Inscription : 12-01-2012
Messages : 5

Re : [Résolu]Template+ affichage page HTML simple

Ravi que ton problème ait été résolu, si tu veux aller plus loin et
utiliser des raccourcis django plutôt qu'une longue ligne de rendering pour
ton template, je te conseille un tutoriel que j'ai écrit disponible a cette
adresse : http://tutos-django.com/2011/12/06/django-shortcuts-raccourcis/

En espérant que ca t'aide a avancer wink

2012/4/18 sushi <sushisnet _AT_ gmail.com>

> C'est bon j'ai trouvé le problème.
>
> En regardant la doc, j'ai vu que mon loader n'était pas complet, il
> fallait que je renvoie le render.
>
> Donc dans mes vu où je laod mes templates j'ai modifié la lige comme
> ça:
>
>  t = loader.get_template('acceuil.html').render(Context({}))
>
> En fait, je pensais que ce n'était pas obligatoire, je pensais qu'il
> suffisait juste de charger le template avec le get et que le render était
> "optionnel" (on l'utilisais si jamais on avait besoin de faire passer des
> variables au template).
>
> problème résolu donc!
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>

Hors ligne

#7 18-04-2012 13:32:33

sushi
Membre
Inscription : 17-04-2012
Messages : 9

Re : [Résolu]Template+ affichage page HTML simple

Oui je viens d'apprendre à me servir de render_to_response.

Pour le reste je verrais ça sur le tas pour le moment je dois développer mon service et mon portail rapidement!

Merci pour ton aide.

Hors ligne

#8 18-04-2012 16:50:49

yohann gabory
Membre
Inscription : 11-08-2010
Messages : 8

Re : [Résolu]Template+ affichage page HTML simple

Bonjour, si tu ne veux renvoyer qu'un template, direct_to_template est fait
pour toi et te fera gagner du temps

Le 18 avr. 2012 14:33, "sushi" <sushisnet _AT_ gmail.com> a écrit :

Oui je viens d'apprendre à me servir de render_to_response.

Pour le reste je verrais ça sur le tas pour le moment je dois développer
mon service et mon portail rapidement!

Merci pour ton aide.

_______________________________________________
django mailing list
django _AT_ lists.afpy.org
http://lis...

Hors ligne

Pied de page des forums