Keluar
Termasuk bagian Pengguna dan Akun dalam perjalanan Django di Coddy. Pelajaran 3 dari 16.
Pengguna yang sudah masuk tidak memiliki cara untuk keluar. include() yang sama menambahkan /accounts/logout/, dengan nama logout: ini mengakhiri sesi, sehingga cookie tidak lagi menunjuk ke pengguna.
Tautan biasa tidak akan berhasil. Tautan mengirim GET, dan GET tidak boleh mengubah apa pun: sebuah halaman dapat menyembunyikan gambar yang alamatnya adalah URL logout-mu dan membuatmu keluar. Jadi, LogoutView hanya menerima POST dan membalas GET dengan 405 Method not allowed.
Tombol yang mengubah sesuatu adalah formulir POST kecil, bahkan tanpa kolom. action-nya menentukan URL tujuan pengirimannya, jadi formulir ini dapat ditempatkan di halaman mana pun:
<form method="post" action="{% url 'cart:empty' %}">
{% csrf_token %}
<button type="submit">Empty cart</button>
</form>Setelah keluar, Django mengalihkan ke LOGOUT_REDIRECT_URL.
Tantangan
Mudah- Di
base.html, di bawahSigned in as ..., tombolLog outmengeluarkan pengguna dari akun. - Setelah keluar dari akun, pengunjung diarahkan ke
/.
Tekan Jalankan, masuk sebagai ada (kata sandi coddy-pass-123), lalu tekan Log out.
Coba sendiri
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>{% block title %}Notes{% endblock %}</title>
<link rel="stylesheet" href="{% static 'notes/style.css' %}">
</head>
<body>
<header>
<a class="brand" href="{% url 'notes:list' %}">Notes</a>
<nav>
<a href="{% url 'notes:create' %}">New note</a>
</nav>
<div class="account">
{% if user.is_authenticated %}
<p>Signed in as {{ user.username }}</p>
{% else %}
<p>You are not signed in.</p>
<a href="{% url 'login' %}">Log in</a>
{% endif %}
</div>
</header>
<main>
{% block content %}{% endblock %}
</main>
</body>
</html>
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pengguna dan Akun
Latihan sendiri: Playground Django