今天的实作内容主要根据教学网站进行。
Django提供了身份认证与授权系统,不论是登入、登出、密码管理,都有现成的模组可以使用。
今天将实作如何启用身份认证,并建立登入和登出页面。
在建立startproject时,身份认证预设已经启用,可於settings.py确认以下配置内容是否正确:
INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.contenttypes',
]
MIDDLEWARE = [
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
]
使用浏览器进入管理员网站,於网站上进行新增群组和使用者。
from django.contrib.auth.models import User
# Create user and save to the database
user = User.objects.create_user('myusername', '[email protected]', 'mypassword')
# Update fields and then save again
user.first_name = 'John'
user.last_name = 'Citizen'
user.groups
user.save()
from django.contrib.auth.models import Group
mygroup = Group.objects.get(name='mygroupname')
mygroup.user_set.add(myuser)
在专案资料夹下的urls.py增加以下内容:
urlpatterns += [
path('accounts/', include('django.contrib.auth.urls')),
]
django.contrib.auth.urls 中包含登入、登出、密码变更等各子项目的url设定。
使用user.is_authenticated属性来判断是否已通过身份验证:
{% if user.is_authenticated %}
<p>Your account doesn't have access to this page. To proceed,
please login with an account that has access.</p>
{% else %}
<p>Please login to see this page.</p>
{% endif %}
{% extends "base_generic.html" %}
{% block content %}
<p>Logged out!</p>
<a href="{% url 'login'%}">Click here to login again.</a>
{% endblock %}
TEMPLATES = [
{
'DIRS': ['./templates',],
'APP_DIRS': True,
}
修改「base_generic.html」,加入登入和登出两个页面的连结,并根据user.is_authentication作为判断条件进行显示。
{% if user.is_authenticated %}
<li>User: {{ user.get_username }}</li>
<li><a href="{% url 'logout'%}?next={{request.path}}">Logout</a></li>
{% else %}
<li><a href="{% url 'login'%}?next={{request.path}}">Login</a></li>
{% endif %}
<<: 视觉化当日趋势图(3)-取得python api方法
●Java 自定义注解 创建自定义注解类似於编写接口,不同之处在於interface关键字以@符号为...
很多初学Entity Framework( Core)(以下简称EF)的新手,刚开始使用EF时都会有...
前言 今天要来跟各位介绍ESP32s开发板的一些基本知识,现在如果上Google大神随手一搜「物联网...
本篇我们要来介绍,登录值的格式、.reg档的意义,不过最後登录档的备份因为篇幅太长我就留到下篇来讲,...
接续昨天的内容,今天要配合 SessionHelper 来完成购物车的主要功能 需要完成购物车的模型...