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

Python Discussion :

Boite de connexion django-python


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Par défaut Boite de connexion django-python
    Bonjour, j'ai récupéré un template de connexion comme ceci :

    http://zupimages.net/viewer.php?id=14/25/sd6z.png

    J'ai pris l'index, l'ai mis comme base.html relié à son css dans mon dossier static de mon application. Seulement, la vue qui permet de faire correspondre les champs du html aux champs de connection Django je ne sais pas la faire.

    J'avais fait un formulaire ds connection dans forms.py de mon appli, la vue correspondante qui envoyait les données au template, la connection fonctionnait mais du coup je ne pouvais pas y appliquer mon css et traiter les champs comme dans le template de connexion.

    Ma vue se présentait sous cette forme là :

    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
    def connexion(request):
        error = False
        if request.method == "POST":
            form = ConnexionForm(request.POST)
            if form.is_valid():
                username = form.cleaned_data["username"]  # Nous récupérons le nom d'utilisateur
                password = form.cleaned_data["password"]  # … et le mot de passe
                user = authenticate(username=username, password=password)
    		  #Nous vérifions si les données sont correctes
                if user:  # Si l'objet renvoyé n'est pas None
                    login(request, user)  # nous connectons l'utilisateur
                else: #sinon une erreur sera affichée
                    error = True
        else:
            form = ConnexionForm()
        return render(request, 'inter1/connexion.html',locals())
    Mon templates :

    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
    {% if error %}
    <p><strong>Utilisateur inexistant ou mauvais de mot de passe.</strong></p>
    {% endif %}
    {% if user.is_authenticated %}
    <meta http-equiv="Refresh" content="0;url=/inter1/accueil">
    Vous êtes connecté, {{ user.username }} !
    {% else %}
    <form method="post" action=".">
           {% csrf_token %}
           {{ form.as_p }}
        <input type="submit"/>
    </div>
    </div>
    </div>
    </form>
    {% endif %}
    Si j'include ma base, j'obtient ma boite de connexion comme sur la photo mais après il n'y a aucune action derrière. Merci d'avance.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Par défaut
    Bonjour,

    Concernant ton problème, qu'entends tu par il ne se passe rien ? J'imagine que tu fais référence à la soumission de ton formulaire ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 16
    Par défaut
    oui, il ne traite pas les données rentrées et par conséquent ne peut se connecter.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Par défaut
    J'ai testé un code en me servant de ce que tu as fait et ça marche chez moi

    Ne sachant pas d'où pourrait provenir ton erreur :

    j'ai testé ça :

    views.py
    Code python : 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
    20
    21
    from django.shortcuts import render
    from django.contrib.auth import login, authenticate
     
    from applogin.forms import ConnexionForm #applogin est le nom de mon appli
     
    def connexion(request):
        error = False
        if request.method == "POST":
            form = ConnexionForm(request.POST)
            if form.is_valid():
                username = form.cleaned_data["username"]  # Nous récupérons le nom d'utilisateur
                password = form.cleaned_data["password"]  # … et le mot de passe
                user = authenticate(username=username, password=password)
              #Nous vérifions si les données sont correctes
                if user:  # Si l'objet renvoyé n'est pas None
                    login(request, user)  # nous connectons l'utilisateur
                else: #sinon une erreur sera affichée
                    error = True
        else:
            form = ConnexionForm()
        return render(request, 'applogin/login_user.html',locals())

    urls.py

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    from django.conf.urls import patterns, url
    from django.contrib import admin
    admin.autodiscover()
     
    from applogin import views
     
    urlpatterns = patterns('',
     
        url(r'^connexion/$', views.connexion, name='connexion'),
     
    )

    forms.py
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    from django import forms
     
    class ConnexionForm(forms.Form):
        username = forms.CharField(label="Username")
        password = forms.CharField(label="Mot de passe", widget = forms.PasswordInput)

    Ensuite, et j'imagine que tu l'as fait n'oublie pas manage.py syncdb.

    Si je ne dis pas de bêtise cela devrait marcher

Discussions similaires

  1. Splash Screen et Boite de connexion
    Par sondo dans le forum Langage
    Réponses: 10
    Dernier message: 02/04/2009, 20h51
  2. Problème avec la boite de connexion
    Par borislenium dans le forum VBA Access
    Réponses: 4
    Dernier message: 10/06/2008, 16h07
  3. Connexions multiples Python - Mysql
    Par raoulchatigre dans le forum Bibliothèques tierces
    Réponses: 6
    Dernier message: 01/04/2008, 23h08
  4. Réponses: 14
    Dernier message: 26/09/2007, 19h20

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