Verschiedene Ich habe die Anmeldefunktion implementiert, daher werde ich das Verfahren überprüfen.
Referenz: http://docs.djangoproject.jp/en/latest/topics/auth.html#web
Die Implementierung war relativ einfach, da es praktische Module für das An- und Abmelden gibt.
views.py
from django.contrib.auth import authenticate #Authentifizierungsmodul
#....
def log_in(req):
from django.contrib.auth import login #Zum Anmelden
user = None #Temporäre Definition, um NameError zum Zeitpunkt von GET zu verhindern
if req.method=='POST':
uname = req.POST['username'] #Im Formular für die Anmeldung
pword = req.POST['password'] #Senden und empfangen
user = authenticate( username=uname,password=pword )
#Authentifizieren Sie den Benutzer mit Benutzername und Passwort und weisen Sie das Ergebnis dem variablen Benutzer zu
if user is not None: #Werden Sie Keine, wenn die Authentifizierung fehlschlägt
if user.is_active: #Benutzer, die auch dann nicht aktiv sind, wenn sie vorhanden sind, können sich nicht anmelden
login(req,user) #nur das. Vergiss das Argument nicht
return HttpResponseRedirect(req.GET['next'])
#Am Ende der URL/?next=/page/Um das Umleitungsziel dynamisch zu machen.
contexts = RequestContext(req,{
'request':req.method,
'user':user,
})
template = loader.get_template('blog_in_heroku/login.html')
return HttpResponse( template.render(contexts) )
def log_out(req):
from django.contrib.auth import logout #Zum Abmelden
logout(req) #Dies scheint auch ein HttpRequest-Objekt als Argument zu erfordern
template = loader.get_template('blog_in_heroku/logout.html')
contexts = Context({})
return HttpResponse( template.render(contexts) )
Außerdem habe ich dieses Beispiel nach dem Beispiel geschrieben, ohne Verknüpfungen zu verwenden. Es scheint eine Verknüpfung für die Authentifizierung zu geben, daher kann sie meiner Meinung nach viel kürzer geschrieben werden (Einzelheiten finden Sie auf der Referenzseite oben).
login.html
<html>
<head>
<title>Einloggen</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap-theme.min.css">
<script src="https://code.jquery.com/jquery.js"></script>
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
</head>
<body>
<div class="jumbotron">
<div class="container">
{% ifequal request "POST" %}
{% if not user.is_authenticated %}
<div class="alert alert-danger">
<strong>Die Eingabeinformationen sind falsch.</strong>
</div>
{% else %}<!--Bewegt sich nicht-->
{% if not user.is_active %}
<div class="alert alert-danger">
<strong>Dieser Benutzer wurde widerrufen.</strong>
</div>
{% endif %}
{% endif %}
{% else %}
<div class="alert alert-info">
<h3><strong>Bitte gib deinen Benutzernamen und dein Passwort ein.</strong></h3>
</div>
{% endifequal %}
<div class="col-xs-6">
<form class="form-horizontal" role="form" action="" method="post">
{% csrf_token %}
<div class="form-group">
<label for="uname">Nutzername</label>
<input type="text" class="form-control input-lg" id="uname" name="username" />
</div>
<div class="form-group">
<label for="pass">Passwort</label>
<input type="password" class="form-control input-lg" id="pass" name="password" />
</div>
<br/>
<div class="form-group">
<input class="btn btn-info btn-lg" type="submit" value="Einloggen" />
<a type="button" href="/" class="btn btn-warning btn-lg">Stornieren</a>
</div>
</form>
</div>
<br/>
</div>
</div>
</body>
</html>
Aufgrund des Skripts für die Fehlermeldung ist es lang, aber es ist gut genug, nur innerhalb des Formular-Tags. Übrigens ist der mit \ <! - Funktioniert nicht-> gekennzeichnete Teil ** Ich habe versucht, das Konto zu deaktivieren, mit dem das Konto zum Testen erstellt wurde, aber es hat nicht funktioniert **, also habe ich dies vorerst kommentiert.
logout.html
<html>
<head>
<title>Ausloggen</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap-theme.min.css">
<script src="https://code.jquery.com/jquery.js"></script>
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
</head>
<body>
<div class="jumbotron">
<div class="container">
<div class="page-header">
<h2>abgemeldet.</h2>
</div>
<a type="button" class="btn btn-success btn-lg" href="/">zurück zur obersten Seite</a>
<a type="button" class="btn btn-info btn-lg" href="/login/?next=/">Melden Sie sich mit einem anderen Konto an</a>
</div>
</div>
</body>
</html>
Dies ist eine Art Dekoration. Achten Sie nur auf die Link-URL von "Mit einem anderen Konto anmelden". ** Wenn Sie diesmal beim Schreiben der Ansichtsfunktion nicht richtig angeben, tritt ein Fehler auf. ** **.
Zustand im Moment: http://my-1st-django-blog.herokuapp.com/
Recommended Posts