2012-06-21 4 views
2

J'ai donc un formulaire simple qui prend quelques entrées (deux text et deux textareas) et le lance à travers une fonction qui met les quatre entrées dans le datastore (google app engine) . Le problème est quand j'ai une quantité décente de texte dans l'un des s (ce qui signifie, 5 paragraphes, ~ 4/5 phrases chacun, .. 2.000 caractères). J'utilise TextProperty() dans le datastore (et aussi StringProperty pour les plus petites entrées). Cela fonctionne quand je ne mets que quelques mots pour chacun, mais pas quand je mets une quantité décente de texte, ce qui se passe: une page Web vide apparaît à la place de ma page de confirmation de base. Aucune donnée n'est transférée dans le magasin de données.google app engine textarea (à partir du formulaire) à datastore

Mon gestionnaire utilise get() (par opposition à POST)

Pourquoi cela se produit et comment puis-je résoudre ce problème? Je suis sûr que c'est une solution simple, mais je suis un peu vert à cela. Merci

+0

Quel navigateur utilisez-vous? –

+0

Chrome. Si cela signifie quelque chose, tout le texte apparaît dans la barre d'adresse, mais je suis assez sûr que c'est supposé se produire –

+1

J'ai demandé parce que IE a une limite de ~ 2000 caractères. Btw, pourquoi GET? –

Répondre

3

Bien qu'en théorie il n'y a pas de limite, dans la pratique tous les navigateurs appliquent certains limits to the query string et puisque vous utilisez GET au lieu de POST toutes vos entrées sont transmises en tant que paramètres de requête dans l'URL.

Lorsque vous obtenez des valeurs à partir de formulaires de saisie, vous devez utiliser le bon method="POST" dans le <form> et gérer correctement dans votre gestionnaire en utilisant post(). Si vous passez par le Getting Started, vous trouverez la section pour Handling Forms.

+0

cela, bien sûr, a fonctionné. merci –

+1

Utiliser POST est bien mieux que d'utiliser GET en général, aussi - GET est supposé être idempotent, donc vous ne devriez jamais faire quoi que ce soit qui a des effets secondaires dans une requête GET. –

Questions connexes