2010-06-23 6 views
4

Je fais un tutoriel Django sur les modèles. Je suis actuellement à ce code:Modèle Django

from django.template import Template, Context 
>>> person = {'name': 'Sally', 'age': '43'} 
>>> t = Template('{{ person.name }} is {{ person.age }} years old.') 
>>> c = Context({'person': person}) 
>>> t.render(c) 
u'Sally is 43 years old.' 

Ce que je ne comprends pas cette ligne:

c = Context({'person': person}) 

Est-ce que les deux variables doivent être appelé personne à être utilisée dans cet exemple ou est-il juste au hasard ?

À quoi fait référence 'person' et à quoi fait référence person?

+0

Vous devriez vraiment faire un tutoriel Python introduction avant d'essayer d'apprendre Django. –

Répondre

3
c = Context({'person': person}) 

La première personne (entre guillemets) désigne le nom de la variable que les Template attend. La deuxième personne attribue la variable person créée dans la deuxième ligne de votre code à la variable personne du Context à transmettre au Template. Le second peut être n'importe quoi, tant qu'il correspond à sa déclaration.

Cela devrait clarifier les choses un peu:

from django.template import Template, Context 
>>> someone = {'name': 'Sally', 'age': '43'} 
>>> t = Template('{{ student.name }} is {{ student.age }} years old.') 
>>> c = Context({'student': someone}) 
>>> t.render(c) 
1

Est-ce que les deux variables doivent être appelé personne à utiliser dans cet exemple ou est-il juste au hasard?

Non, ceci est juste aléatoire.

À quoi sert la «personne» et à quoi fait-elle référence?

D'abord, le {} est un objet de dictionnaire, qui est la terminologie python pour un tableau associatif ou un hachage. Il s'agit essentiellement d'un tableau avec des touches (presque) arbitraires.

Donc, dans votre exemple, 'person' serait la clé, person la valeur.

Lorsque ce dictionnaire est passé au modèle, vous pouvez accéder à réel objets (ici, la personne, avec le nom, l'âge, etc) en utilisant la clé, vous choisissez avant.

Comme un autre exemple:

# we just use another key here (x) 
c = Context({'x': person}) 

# this would yield the same results as the original example 
t = Template('{{ x.name }} is {{ x.age }} years old.') 
0

{'person': person} est un standard de Python dict. Le constructeur Context prend une dict et produit un objet de contexte approprié pour une utilisation dans un modèle. La méthode Template.render() permet de transmettre le contexte au modèle et de recevoir le résultat final.

0

c = Contexte ({ « personne »: personne})
Voici la première « personne » dans le dictionnaire est le nom variable (clé) alors que personne représente la variable que vous avez déclaré en ligne au-dessus-à-dire t = Template ('{{student.name}} est {{student.age}} ans.') Le contexte est un constructeur, qui prend un argument optionnel & ses noms de variables de mappage de dictionnaire à des valeurs de variable.Appelez la méthode de l'objet modèle render() avec le contexte de « remplir » le modèle: pour obtenir de plus amples informations, visitez le lien donné http://www.djangobook.com/en/2.0/chapter04.html