Divers J'ai implémenté la fonction de connexion, je vais donc revoir la procédure.
Référence: http://docs.djangoproject.jp/en/latest/topics/auth.html#web
Il était relativement facile à mettre en œuvre car il existe des modules pratiques pour la connexion et la déconnexion.
views.py
from django.contrib.auth import authenticate  #Module d'authentification
#....
def log_in(req):
	from django.contrib.auth import login  #Pour se connecter
	user = None  #Définition temporaire pour empêcher NameError au moment de GET
	if req.method=='POST':
		uname = req.POST['username']  #Dans le formulaire de connexion
		pword = req.POST['password']  #Envoyer et recevoir respectivement
		user = authenticate( username=uname,password=pword )
                #Authentifiez l'utilisateur avec le nom d'utilisateur et le mot de passe et attribuez le résultat à l'utilisateur variable
		if user is not None:  #Devenir Aucun si l'authentification échoue
			if user.is_active:  #Les utilisateurs qui ne sont pas actifs même s'ils existent ne peuvent pas se connecter
				login(req,user)  #seulement ça. N'oubliez pas l'argument
				return HttpResponseRedirect(req.GET['next'])
                                #À la fin de l'URL/?next=/page/Pour rendre la destination de la redirection dynamique.
	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  #Pour la déconnexion
	logout(req)  #Cela semble également nécessiter un objet HttpRequest comme argument
	
	template = loader.get_template('blog_in_heroku/logout.html')
	contexts = Context({})
	return HttpResponse( template.render(contexts) )
De plus, en suivant l'exemple, j'ai écrit cette fois sans utiliser de raccourcis. Il semble y avoir un raccourci pour l'authentification, donc je pense qu'il peut être écrit beaucoup plus court que cela (voir la page de référence ci-dessus pour plus de détails).
login.html
<html>
	<head>
		<title>S'identifier</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>Les informations d'entrée sont incorrectes.</strong>
				</div>
					{% else %}<!--Ne bouge pas-->
						{% if not user.is_active %}
				<div class="alert alert-danger">
					<strong>Cet utilisateur a été révoqué.</strong>
				</div>
						{% endif %}
					{% endif %}
				{% else %}
				<div class="alert alert-info">
					<h3><strong>Veuillez s'il vous plaît entrer votre nom d'utilisateur et votre mot de passe.</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">Nom d'utilisateur</label>
							<input type="text" class="form-control input-lg" id="uname" name="username" />
						</div>
						<div class="form-group">
							<label for="pass">mot de passe</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="S'identifier" />
							<a type="button" href="/" class="btn btn-warning btn-lg">Annuler</a>
						</div>
					</form>
				</div>
				<br/>
			</div>
		</div>
	</body>
</html>
C'est long à cause du script du message d'erreur, mais c'est assez bien s'il se trouve juste à l'intérieur de la balise form. Au fait, la partie marquée \ <! - Ne fonctionne pas-> est ** J'ai essayé en désactivant le compte qui a créé le compte pour les tests, mais cela n'a pas fonctionné **, alors j'ai commenté pour le moment.
logout.html
<html>
	<head>
		<title>Se déconnecter</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>déconnecté.</h2>
				</div>
				<a type="button" class="btn btn-success btn-lg" href="/">retour à la page principale</a>
				<a type="button" class="btn btn-info btn-lg" href="/login/?next=/">Connectez-vous avec un autre compte</a>
			</div>
		</div>
	</body>
</html>
C'est une sorte de décoration. Faites attention uniquement à l'URL du lien "Se connecter avec un autre compte". ** Si vous ne spécifiez pas correctement suivant lors de l'écriture de la fonction d'affichage cette fois, une erreur se produira. ** **
État pour le moment: http://my-1st-django-blog.herokuapp.com/
Recommended Posts