Django中authenticate和login模块登录用户

Django中authenticate和login模块

Django 提供内置的视图(view)函数用于处理登录和退出,Django提供两个函数来执行django.contrib.auth中的动作 : authenticate()和login()。

认证给出的用户名和密码,使用 authenticate() 函数。它接受两个参数,用户名 username 和 密码 password ,并在密码对给出的用户名合法的情况下返回一个 User 对象。 如果密码不合法,authenticate()返回None。

from django.contrib.auth import authenticate, login

user = authenticate(username='john', password='secret')
if user is not None:
  print("Correct!")
else:
  print("Invalid password.")

登录和验证

authenticate() 只是验证一个用户的证书而已。 而要登录一个用户,使用 login() 。该函数接受一个 HttpRequest 对象和一个 User 对象作为参数并使用Django的会话( session )框架把用户的ID保存在该会话中。

	username = request.POST.get('username')
	password = request.POST.get('pwd')

    # django内置认证来校验登录用户
    user = authenticate(username=username, password=password)
    if user is not None:
        if user.is_active:
            # 记住登录状态
            login(request, user)
            response = redirect('goods:index')
            return response
        else:
            return render(request, 'login.html', {'errmsg': '账户未激活'})
    else:
        return render(request, 'login.html', {'errmsg': '用户名或密码错误'})

登出

注销一个用户,在你的视图中使用django.contrib.auth.logout() 。 它接受一个HttpRequest对象并且没有返回值,所以,因为没有返回值,需要返回一个页面

from django.contrib.auth import logout
 
def logout_view(request):
  logout(request)
  return render(request, 'login.html')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天意不可违.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值