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:
CREATE
FUNGSI dalam FUNGSI: views.py
sign_in
<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>
login.html
<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>
urls.py
<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>
settings.py
Apabila anda perlu mengehadkan data tertentu (bukan keseluruhan pandangan), gunakan kaedah
<code class="language-python">LOGIN_REDIRECT_URL = '/accounts/profile/' LOGIN_URL = '/accounts/login/' LOGOUT_REDIRECT_URL = '/'</code>
is_authenticated
Dalam templat, periksa sama ada pengguna telah meluluskan pengesahan identiti:
<code class="language-python">if request.user.is_authenticated: # 对已认证用户执行操作 ... else: # 对匿名用户执行操作 ...</code>
Di samping itu, anda boleh menggunakan
Lihat Hiasan Lihat:<code class="language-html">{% if user.is_authenticated %} <p>您的帐户无权访问此页面。要继续,请使用具有访问权限的帐户登录。</p> {% else %} <p>请登录以查看此页面。</p> {% endif %}</code>
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!