django mysql secure_auth_验证django 用户认证auth模块常见方法使用.

在用 django 改造某些旧系统的时候,由于原来的用户设计不可能按照django 的 auth 模块的用户表那样设计的,当然你可以硬扩展成那样,但必须保证不影响别的系统,所以在很多情况下还是保持原来的表结构不变,自己写用户,权限管理这一块. 以前写过一篇自己定义 session 的方式: django 自定义session, 并采用装饰模式来实现django 自身的 @login_required 类似功能。 如果是新开发的应用,如何用django 自身的 装饰方法判断是否登录:rom django.shortcuts import render

from programm.models import *

from django.contrib.auth.decorators import login_required

def index(request):

return render(request, 'index.html')

@login_required

def liste(request):

return render(request, 'liste.html', {'lObj': myModel.objects.all()})

在这里直接用 @login_required 来装饰,但是用这种情况的前提是你必须采用 DJANGO的 autho 框架来实现用户管理.

from django.contrib.auth import authenticate, login

def my_view(request):

username = request.POST['username']

password = request.POST['password']

user = authenticate(username=username, password=password)

if user is not None:

if user.is_active:

login(request, user)

# Redirect to a success page.

else:

# Return a 'disabled account' error message

else:

# Return an 'invalid login' error message.

除此之外,还有一些其他的方法:

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/$', 'django.contrib.auth.views.password_change', {

'template_name': 'change_passwd.html',

'post_change_redirect': '/',

}),

(r'^reset_passwd/$', 'django.contrib.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[0-9A-Za-z]{1,13})-(?P[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', \

'django.contrib.auth.views.password_reset_confirm', {

'template_name': 'reset_confirm.html',

'post_reset_redirect': '/signin/',

}

),

(r'^reset_done/$', 'django.views.generic.simple.direct_to_template', {'template': 'message.html', 'extra_context': {

'msg': _(u'我们已将一封包含恢复密码步骤的邮件发到了您的邮箱,请查收'),

}}),

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值