Après juste codé pendant environ 6-9 mois. J'ai probablement changé mon style de codage un certain nombre de fois après avoir lu du code ou lu les meilleures pratiques. Mais une chose que je n'ai pas encore faite est de savoir pourquoi remplir le template_dict.Webapp meilleure pratique template_dict
A partir de maintenant je passe le template_dict à travers un certain nombre de méthodes (qui le modifie/le modifie) et renvoie est. Le résultat est que chaque méthode prend template_dict comme premier argument et le renvoie et cela à mes yeux ne semble pas être la meilleure solution.
Une idée consiste à avoir une méthode qui gère tous les changements. Mais je suis curieux s'il y a une meilleure pratique pour cela? Ou est-ce que c'est "fais ce que tu ressens" -type de chose?
Les 2 choses que je pense est assez moche est d'envoyer comme argument et de le retourner dans toutes les méthodes. Et juste le nom du var est écrit nombre xxx fois dans le code :)
..fredrik
EDIT:
Pour démontrer ce que je veux dire avec template_dict (je pensais que c'était un général terme, je l'ai obtenu à partir de l'implémentation google des méthodes de template de django).
J'ai un dict je passe au modèle via la méthode render.template:
template.render(path, template_dict) #from google.appengine.ext.webapp import template
Ce template_dict je dois manipuler afin d'envoyer des données/dicts/listes à la vue (fichier html) . Si je ne me trompe pas.
Donc, avec cela à l'esprit, mon code se termine habituellement à la recherche un peu cela comme ceci:
## Main.py file to handle the request and imports classes.
from models import data
from util import foo
class MainHandler(webapp.RequestHandler):
template_dict = { 'lang' : 'en' }
## reads all current keys and returns dict w/ new keys, if needed
template_dict = data.getData(template_dict)
if 'unsorted_list' in template_dict:
template_dict = util.foo(template_dict)
## and so on....
path = os.path.join(os.path.dirname(__file__), 'templates', file)
self.response.out.write(template.render(path, template_dict))
Dans la plupart de mes applications les nombreux retours et ensembles ne figure pas dans la main.py mais plutôt autres classes et méthodes.
Mais vous devriez faire l'idée générale.
Qu'est-ce que 'template_dict'? Vous en parlez comme s'il s'agissait d'une partie bien connue de Django, mais je n'en ai jamais entendu parler ou je ne l'ai jamais utilisé. Montrez du code qui démontre ce qu'il fait. –
Je suppose qu'il fait référence au dictionnaire que vous passez à un modèle dans la méthode render_to_response ... mais je ne peux pas imaginer pourquoi vous devriez le passer à plusieurs méthodes. Je suis d'accord, l'échantillon de code nécessaire. –
@Daniel et Chris: Je vais mettre à jour avec du code pour montrer ce que je veux dire. – fredrik