python验证需要登录@login_required
⼀、装饰器@login_required
ib.auth.decorators import login_required
@login_required
def test(request):
...
装饰器@login_required标签,其作⽤就是告诉程序,使⽤这个⽅法是要求⽤户登录的。
1. 如果⽤户还没有登录,默认会跳转到‘/accounts/login/’。这个值可以在settings⽂件中通过LOGIN_URL参数来设定。(后⾯还
会⾃动加上你请求的url作为登录后跳转的地址,如:
/accounts/login/?next=/polls/3/ 登录完成之后,会去请求/poll/3)
2. 如果⽤户登录了,那么该⽅法就可以正常执⾏
django登录注册功能
如果LOGIN_URL使⽤默认值,那么在urls.py中还需要进⾏如下设置:(加⼊下⾯这句)
(r'^accounts/login/$', 'ib.auth.views.login'),
这样的话,如果未登录,程序会默认跳转到“templates\registration\login.html”这个模板。
如果想换个路径,那就再加个template_name参数,如下:
(r'^accounts/login/$', 'ib.auth.views.login', {'template_name':'myapp/login.html'}),
这样程序就会跳转到templates\myapp\login.html”
⼆、auth模块其他⽅法
除了login这个有⽤的⽅法之外,auth模块还提供很多有⽤的⽅法,⽐如:
logout(request[, next_page, template_name, redirect_field_name])
password_change(request[, template_name, post_change_redirect, password_change_form])
password_change_done(request[, template_name])
password_reset(request[, is_admin_site, template_name, email_template_name, password_reset_form,token_generator, post_reset_redirect, from_email] )
password_reset_done(request[, template_name])
⽤法⽰例:
(r'^change_passwd/$', 'ib.auth.views.password_change', {
'template_name':'change_passwd.html',
'post_change_redirect':'/',
}),
(r'^reset_passwd/$', 'ib.auth.views.password_reset', {
'template_name':'reset_passwd.html',
'email_template_name':'reset_passwd_email.html',
'post_reset_redirect':'/reset_done/',
'from_email':'noreply@jihua.in',
}),
(r'^reset_confirm/(?P<uidb36>[0-9A-Za-z]{1,13})-(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', \
'ib.auth.views.password_reset_confirm', {
'template_name':'reset_confirm.html',
'post_reset_redirect':'/signin/',
}
),
(r'^reset_done/$', 'ic.simple.direct_to_template', {'template':'message.html', 'extra_context':{ 'msg': _(u'我们已将⼀封包含恢复密码步骤的邮件发到了您的邮箱,请查收'),
}}),

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。