登录
本课属于 Coddy Django 学习旅程的“用户和账户”单元。第 2 课,共 16 课。
这个网站可以识别已登录的用户,但没有登录页面。Django 提供了视图 LoginView。在项目的 urls.py 中添加一行,就能启用它以及退出登录和密码页面:
path("accounts/", include("django.contrib.auth.urls")),现在,/accounts/login/ 已经存在,名称为 login。该视图会使用包含 username 和 password 字段的 form 来渲染 registration/login.html。这个模板需要你自己编写:它是一个普通的 POST 表单。Django 会在每个应用的 templates/ 文件夹中查找。路径以 registration/ 开头,而不是 notes/,因为 Django 的视图不知道你的应用是什么。
登录成功后,该视图会重定向到 LOGIN_REDIRECT_URL。它的默认值 /accounts/profile/ 在这里并不存在,所以要在 settings.py 中设置它。
挑战
简单添加登录页面。
- 在
mysite/urls.py中,将django.contrib.auth.urls配置到accounts/下。 - 创建
notes/templates/registration/login.html,继承notes/base.html,并在 POST 表单中显示form,包含{% csrf_token %}和一个Log in按钮。 - 在
settings.py中,将LOGIN_REDIRECT_URL设置为"/"。 - 在
base.html中,为已退出的访客添加指向{% url 'login' %}的Log in链接。
使用 ada 登录(密码为 coddy-pass-123):页眉会显示 Signed in as ada。
亲手试试
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path("admin/", admin.site.urls),
path("", include("notes.urls")),
]
用户和账户中的所有课
自己练习: Django 在线编辑器