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 :

Formulaire d'identification Python|Django


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 43
    Par défaut Formulaire d'identification Python|Django
    Bonjour à tous !

    Je me permet une nouvelle fois de faire appel à vos lumières sur un petit soucis que je rencontre avec python (framework django).

    Dans mon application, j'ai créer une page d'accueil contenant un formulaire pour l'identification (un champ pour le login + un autre pour le mot de passe + un bouton submit "connection").
    Seulement je n'ai aucunes idées de comment on s'y prend pour traiter les informations d'un formulaire en python et créer une session. Imaginons que ma base de données contient la table suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class utilisateur(models.Model):
        login = forms.CharField(max_length=100)
        mdp = forms.CharField(max_length=100)
    J'aimerais que seul les utilisateurs présents dans la table "utilisateur" puissent être identifiés et créer ainsi une session.

    Pouvais-vous m'aider s'il vous plaît car je ne trouve décidément pas de solutions. En tout cas je vous remercie d'avance.

    kiradeus

  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
    bonjour,

    une application d'authentification existe dans django et je vous conseille vivement de l'utiliser.

    Plus de detail, pour comprendre, dans le djangobook.

  3. #3
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 43
    Par défaut
    merci pour ta réponse pacificator
    oui tu as raison il existe bien une application d'authentification dans django. je suis en train de lire du coup les liens que tu m'a envoyé.

    j'adapte ça à mon projet. Mais je risque d'avoir un peu de mal quand même donc si je n'y arrive pas je fais signe.

    merci encore

    kiradeus

  4. #4
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 43
    Par défaut
    bon j'ai essayé d'adapter tout ça à mon projet mais j'ai une erreur et je ne comprend pas où elle peut être.

    voici mon formulaire d'identification dans mon html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <form action="/application/login/" method="POST">
    <table align="center">
    <tr>
    <td>Nom d'utilisateur : </td>
    <td><input type="text" name="username"></td>
    </tr>
    <tr>
    <td>Mot de passe : </td>
    <td><input type="password" name="password"></td>
    </tr>
    <tr>
    <td><input type="submit" value="Connexion"></td>
    <td><input type="reset" value="Reinitialiser"></td>
    </tr>
    </table>
    </form>
    Puis l'extrait de code dans mon urls.py :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (r'^login/$', 'login'),
    Et enfin la description de ma vue "login" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    def login(request):
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                return render_to_response('application/accueil.html')
            else:
                return HttpResponse('Compte inactif.')
        else:
            return HttpResponse('Compte non reconnu.')
    Et il me met une erreur lorsque l'identification est bonne. Sinon il renvoi bien "Compte non reconnu."

    Donc le problème vient à partir de la ligne "if user.is_active:"

  5. #5
    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
    pas besoin de recréer la roue, les fonctions de login existe déja, il suffit de completer ton urls.py:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    from django.contrib.auth.views import login, logout
     
    urlpatterns = patterns('',
        # existing patterns here...
        (r'^accounts/login/$',  login),
        (r'^accounts/logout/$', logout),
    )
    et de créer les templates qui vont bien, par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    {% extends "base.html" %}
     
    {% block content %}
     
      {% if form.errors %}
        <p class="error">Sorry, that's not a valid username or password</p>
      {% endif %}
     
      <form action="" method="post">
        <label for="username">User name:</label>
        <input type="text" name="username" value="" id="username">
        <label for="password">Password:</label>
        <input type="password" name="password" value="" id="password">
     
        <input type="submit" value="login" />
        <input type="hidden" name="next" value="{{ next|escape }}" />
      </form>
     
    {% endblock %}
    tout est dans le djangobook...

  6. #6
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 43
    Par défaut
    ok je comprend le principe c'est bon
    merci à toi et chapeau au forum

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

Discussions similaires

  1. formulaire d'identification en vb
    Par maynousha dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 17/03/2008, 13h18
  2. Créer un formulaire d'identification
    Par Carnage76 dans le forum VBA Access
    Réponses: 6
    Dernier message: 25/05/2007, 13h21
  3. Pb formulaire d'identification (sécurité)
    Par kollyv dans le forum Langage
    Réponses: 6
    Dernier message: 03/10/2006, 15h27
  4. [MySQL] Formulaire d'identification ok en local mais pas sur le serveur
    Par hoangeric dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 24/04/2006, 20h49
  5. [SSL] Formulaire d'identification sécurisé
    Par akecoocoo dans le forum Sécurité
    Réponses: 1
    Dernier message: 05/01/2006, 17h59

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