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 :

Quelle méthode pour récupérer les valeurs d'un formulaire


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 : 43
    Localisation : France, Loire (Rhône Alpes)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut Quelle méthode pour récupérer les valeurs d'un formulaire
    Bonjour,

    Voila mon petit problème (qui n'en ai pas vraiment un, mais bon je souhaite comprendre le truc...):

    j'ai un formulaire pour lequel je récupère les valeurs dans des zones de textes afin de les recopier ailleurs.

    dans le fichiers views.py je récupère de deux manières différentes qui à priori fonctionnent toutes les deux. les voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    a = request.POST['nom1']
    #ou
    b = request.POST.get('nom2', '')
    nom1 et nom2 étant la valeur name de mes zones de textes.
    Ensuite je revoie ça avec un render_to_response.

    Dans les deux cas ça fonctionne. Alors j'aimerai savoir pourquoi l'une plutôt que l'autre.

    Il y a certainement une explication logique et que je découvrirai au fur et à mesure que je développerai avec Django, mais j'aimerai bien la connaître avant...

    Merci à tous de bien vouloir éclairer ma lanterne
    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

  2. #2
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    En utilisant directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.POST['quelquechose']
    tu léves une exception si la clé n'existe pas, alors que la méthode POST.get permet de passer un argument par défaut si la clé n'existe pas (donc pas besoin de faire une gestion d'exception).

    Quelle méthode pour récupérer les valeurs d'un formulaire
    Le mieux, amha, c'est de passer par un formulaire (côté django) style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    form = MyForm(request.POST)
    pour valider tes données.

  3. #3
    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 : 43
    Localisation : France, Loire (Rhône Alpes)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par pacificator Voir le message
    En utilisant directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.POST['quelquechose']
    tu léves une exception si la clé n'existe pas, alors que la méthode POST.get permet de passer un argument par défaut si la clé n'existe pas (donc pas besoin de faire une gestion d'exception).
    Ok je comprends mieux la syntaxe.

    Citation Envoyé par pacificator Voir le message
    Le mieux, amha, c'est de passer par un formulaire (côté django) style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    form = MyForm(request.POST)
    pour valider tes données.
    Excuse mais là je rentre de mon premier vrai entrainement de judo après 4 mois d'arrêt et je dois avouer que je sais même plus lancer le serveur de développement Django...(lol)

    Tu pourrais m'en dire un peu plus sur ce que tu fais ensuite... et aussi à quoi correspond MyForm (sérieux là je suis complètement dans le cirage. c'est trop dur le sport)

    D'avance merci
    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

  4. #4
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    django permet de simplifier l'utilisation des formulaires via django.forms:
    django.forms is Django’s form-handling library.
    While it is possible to process form submissions just using Django’s HttpRequest class, using the form library takes care of a number of common form-related tasks. Using it, you can:

    1. Display an HTML form with automatically generated form widgets.
    2. Check submitted data against a set of validation rules.
    3. Redisplay a form in the case of validation errors.
    4. Convert submitted form data to the relevant Python data types.
    traduction approximative:
    django.forms est une librairie qui permet de gérer les formulaires.

    Bien qu'il soit possible de traiter les formulaires en utilisant seulement la classe HttpRequest, en utilisant la librairie django.forms django prend soin d'un certain nombre tâches usuelles.
    En l'utilisant, vous pouvez:

    1. Afficher un formulaire HTML avec des champs auto-générés.
    2. Vérifiez les données en fonction de plusieurs régles de validations.
    3. Réafficher un formulaire dans le cas d'erreurs de validation.
    4. Convertir les données de formulaire en types de données pertinentes Python.
    Je le redis, c'est une traduction approximative, merci de me corriger en cas d'erreur(s).

    J'espere que ça reponds à ta question.

  5. #5
    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 : 43
    Localisation : France, Loire (Rhône Alpes)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par défaut
    Yes.

    J'ai juste 2 dernières petites questions avant de mettre ce sujet en résolu...

    Si je reprends l'exemple du lien donné j'ai cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class ContactForm(forms.Form):
        subject = forms.CharField(max_length=100)
        message = forms.CharField()
        sender = forms.EmailField()
        cc_myself = forms.BooleanField(required=False)
    Est-ce que:
    * Je peux mettre cette fonction dans n'importe quel fichier .py (à 99.9% je pense que oui)
    * les noms de variables doivent-elles impérativement être les mêmes que les variables "name" dans mon gabarit html (à 98.9% je pense que oui sinon je voix pas comment les diverses vérif peuvent se faire)

    Peux-tu me confirmer ceci.

    Merci
    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

  6. #6
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Est-ce que:
    * Je peux mettre cette fonction dans n'importe quel fichier .py (à 99.9% je pense que oui)
    Oui, sans soucis. perso je le mets dans un fichier forms.py dans le répertoire de l'application manipulée par le formulaire.

    * les noms de variables doivent-elles impérativement être les mêmes que les variables "name" dans mon gabarit html (à 98.9% je pense que oui sinon je voix pas comment les diverses vérif peuvent se faire)
    Oui, c'est exactement ça, par contre, tu peux modifier le label pour être plus explicite lors de l'affichage (méthode as_p, as_table,.. .).

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

Discussions similaires

  1. [2.x] Lecture dump twig pour récupérer les valeurs
    Par forzalec dans le forum Symfony
    Réponses: 5
    Dernier message: 07/02/2014, 14h57
  2. [VBA-E] Récupérer les valeurs d'un formulaire Outlook
    Par ftcalvados dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2010, 17h27
  3. Réponses: 7
    Dernier message: 08/07/2009, 14h15
  4. Réponses: 3
    Dernier message: 23/05/2007, 23h52
  5. Réponses: 1
    Dernier message: 18/04/2007, 06h05

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