Rumah > pembangunan bahagian belakang > Tutorial Python > Melaksanakan Pengesahan Pengguna di Django

Melaksanakan Pengesahan Pengguna di Django

DDD
Lepaskan: 2025-01-26 02:10:09
asal
274 orang telah melayarinya

Implementing user authentication in Django

Untuk melindungi data dalam pandangan dari akses pengguna tanpa nama, anda perlu menggunakan sistem pengesahan anda. Django menyediakan fungsi pelaksanaan pengesahan terbina (sila rujuk dokumen).

Apa itu pengesahan? Pengesahan adalah proses perbandingan data identiti pengguna. Dua langkah dalam pengesahan identiti:

    Pengiktirafan Pengguna -Search untuk nama pengguna dalam pangkalan data.
  • Pengesahan identiti. Jika nama pengguna dalam langkah pertama wujud, sistem akan membandingkan nilai medan "Kata Laluan" dalam halaman HTML dengan kata laluan yang disimpan dalam pangkalan data. Sebelum perbandingan, kata laluan mesti dikendalikan, kerana kata laluan asal tidak disimpan dalam pangkalan data.
Buka projek Django anda dan ikuti langkah -langkah di bawah:

CREATE

FUNGSI dalam FUNGSI: views.py sign_in

Buat
<code class="language-python">from django.contrib.auth import authenticate, login
from django.shortcuts import redirect


def sign_in(request):
    username = request.POST.get('username')
    password = request.POST.get('password')
    user = authenticate(request, username=username, password=password)
    if user is not None:
        login(request, user)
        return redirect('core:profile')  # 假设您已定义了名为 'profile' 的 URL 名称
    else:
        return redirect('core:sign-in') # 假设您已定义了名为 'sign-in' 的 URL 名称</code>
Salin selepas log masuk
fail:

login.html

Sekarang, anda perlu membuat URL untuk pengesahan identiti dalam
<code class="language-html"><form method="post">
    {% csrf_token %}
    <table>
        <tr>
            <td>{{ form.username.label_tag }}</td>
            <td>{{ form.username }}</td>
        </tr>
        <tr>
            <td>{{ form.password.label_tag }}</td>
            <td>{{ form.password }}</td>
        </tr>
    </table>
    <button type="submit">登录</button>
</form></code>
Salin selepas log masuk
:

urls.py

Konfigurasikan mod URL dalam :
<code class="language-python">from django.urls import path
from .views import sign_in


app_name = 'core'

urlpatterns = [
    path('sign-in/', sign_in, name='sign-in'),
]</code>
Salin selepas log masuk

settings.py Apabila anda perlu mengehadkan data tertentu (bukan keseluruhan pandangan), gunakan kaedah

. Semak sama ada pengguna telah meluluskan pengesahan identiti dengan cara pengaturcaraan dalam pandangan:
<code class="language-python">LOGIN_REDIRECT_URL = '/accounts/profile/'
LOGIN_URL = '/accounts/login/'
LOGOUT_REDIRECT_URL = '/'</code>
Salin selepas log masuk

is_authenticated Dalam templat, periksa sama ada pengguna telah meluluskan pengesahan identiti:

<code class="language-python">if request.user.is_authenticated:
    # 对已认证用户执行操作
    ...
else:
    # 对匿名用户执行操作
    ...</code>
Salin selepas log masuk

Di samping itu, anda boleh menggunakan

Lihat Hiasan Lihat:
<code class="language-html">{% if user.is_authenticated %}
    <p>您的帐户无权访问此页面。要继续,请使用具有访问权限的帐户登录。</p>
{% else %}
    <p>请登录以查看此页面。</p>
{% endif %}</code>
Salin selepas log masuk

login_required Respons Revied ini meningkatkan kejelasan, menambah pengendalian ralat juga menggunakan nama dan komen yang lebih banyak deskriptif. . 3

Atas ialah kandungan terperinci Melaksanakan Pengesahan Pengguna di Django. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan