基于 Django1.10 文档的深入学习(20)—— Using the Django authentication system 之 login()
来源:互联网 发布:最小的windows 编辑:程序博客网 时间:2024/06/09 14:33
所有验证视图
这是一个包含django.contrib.auth提供的所有视图的列表。 有关实现细节,请参阅使用视图。
login( request, template_name=`registration/login.html`, redirect_field_name='next', current_app=None, extra_context=None, redirect_authenticated_user=False)
可选参数:
template_name
:用于为用户登录的视图显示的模板的名称。默认为registration / login.html
。
redirect_field_name
:GET
字段的名称,包含登录后要重定向到的URL
。 默认为下一个。
authentication_form
:用于认证的可调用(通常只是一个表单类)。 默认为AuthenticationForm
。
current_app
:指示哪个应用程序包含当前视图的提示。 有关详细信息,请参阅命名空间的URL
解析策略。
extra_context
:将添加到传递给模板的默认上下文数据的上下文数据字典。
redirect_authenticated_user
:一个布尔值,用于控制访问登录页面的验证用户是否将被重定向,就像他们刚刚成功登录一样,默认为False
。
警告
如果启用redirect_authenticated_user,其他网站将能够通过请求重定向到网站上的图像文件来确定访问者是否在您的网站上进行身份验证。为了避免这种“社交媒体指纹”信息泄露,请将所有图像和您的图标托管在单独的域上。
这是django.contrib.auth.views.login
的作用:
- 如果通过GET调用,它将显示一个POSTs到相同的URL的登录表单。更多关于这一点。
- 如果通过POST通过用户提交的凭据进行调用,则会尝试登录用户。如果登录成功,则视图重定向到下一个指定的URL。如果未提供下一个,则重定向到
settings.LOGIN_REDIRECT_URL
(默认为/accounts / profile /
)。如果登录不成功,则重新显示登录表单。
默认情况下,您有责任为登录模板提供html,名为registration / login.html
。该模板通过四个模板上下文变量:
- form:表示
AuthenticationForm
的Form对象。 - next:成功登录后重定向到的URL。这也可能包含查询字符串。
- 站点:当前站点,根据SITE_ID设置。如果您没有安装网站框架,那么这将被设置为一个RequestSite实例,它从当前的HttpRequest中导出站点名称和域。
- site_name:site.name的别名。如果您没有安装网站框架,这将被设置为
request.META['SERVER_NAME']
的值。有关网站的更多信息,请参阅“网站”框架。
如果您不想调用template / login.html
,可以通过额外的参数将template_name
参数传递给URLconf
中的视图。例如,此URLconf行将使用myapp / login.html
:
url(r'^accounts/login/$', auth_views.login, {'template_name': 'myapp/login.html'}),
您还可以通过将redirect_field_name
传递给视图,在登录后指定包含要重定向到的URL的GET字段的名称。 默认情况下,该字段称为下一个。
以下是一个可用作起点的注册/ login.html
模板示例。 它假定您有一个定义内容块的base.html
模板:
{% extends "base.html" %}{% block content %}{% if form.errors %}<p>Your username and password didn't match. Please try again.</p>{% endif %}{% if next %} {% 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 %}{% endif %}<form method="post" action="{% url 'login' %}">{% 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><input type="submit" value="login" /><input type="hidden" name="next" value="{{ next }}" /></form>{# Assumes you setup the password_reset view in your URLconf #}<p><a href="{% url 'password_reset' %}">Lost password?</a></p>{% endblock %}
如果您有自定义身份验证(请参阅自定义身份验证),您可以通过authentication_form
参数将自定义身份验证表单传递到登录视图。 此表单必须在其__init__
方法中接受请求关键字参数,并提供一个返回经过身份验证的用户对象的get_user()
方法(此方法仅在成功的表单验证后才会被调用)。
- 基于 Django1.10 文档的深入学习(20)—— Using the Django authentication system 之 login()
- 基于 Django1.10 文档的深入学习(18)—— Using the Django authentication system 之 LoginRequiredMixin
- 基于 Django1.10 文档的深入学习(33)—— Using the Django authentication system 之login_required和LogiRequiredMixin
- 基于 Django1.10 文档的深入学习(34)—— Customizing authentication in Django 之 基础
- 基于 Django1.10 文档的深入学习(16)——Authentication backends 之 class ModelBackend
- 基于 Django1.10 文档的深入学习(32)—— The Django admin site 之 基础
- 基于 Django1.10 文档的深入学习(11)—— django.shortcuts 之 render()
- 基于 Django1.10 文档的深入学习(12)—— django.shortcuts 之 redirect()
- 基于 Django1.10 文档的深入学习(13)—— django.core.urlresolvers 之 reverse()
- 基于 Django1.10 文档的深入学习(17)——Customizing authentication 之 Custom users and permissions
- 基于 Django1.10 文档的深入学习(10)—— django.contrib.auth 之 User model
- 基于 Django1.10 文档的深入学习(27)—— django.conf.urls utility functions 之 url(),include(),static()
- 基于 Django1.10 文档的深入学习(15)——django.contrib.auth.hashers
- 基于 Django1.10 文档的深入学习(21)——The Forms API 之 Form.errors
- 基于 Django1.10 文档的深入学习(2)—— Settings.py 之 STATIC_*
- 基于 Django1.10 文档的深入学习(3)—— models.py 之 FileField
- 基于 Django1.10 文档的深入学习(4)—— models.py 之 class Meta
- 基于 Django1.10 文档的深入学习(5)—— Making queries 之 FOO_set
- Java Cloneable接口与Serializable接口实现对象克隆和深度克隆
- 使用逻辑卷管理灵活存储
- Iptables防火墙配置
- ERROR ITMS-90023: "Missing required icon file.
- ftp文件共享服务
- 基于 Django1.10 文档的深入学习(20)—— Using the Django authentication system 之 login()
- 嵌入式应用编程经验之谈-局部变量造成的死机
- NGINX配置
- 脚本create_swap.sh
- Linux if判断字符串是否相等
- selinux对文件的控制
- 使用PYTHON POPLIB模块实现邮件收取
- iOS学习笔记-- tableView单选的实现
- 忘记密码zabbix