django 内置模块auth的login与authenticate功能简单测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django 内置模块auth的login与authenticate功能简单测试相关的知识,希望对你有一定的参考价值。

index页加装饰器@login_required需要登陆才能查看
user= authenticate(username=username,password=password)返回user对象
若返回user对象,登陆login(request,user),之后可以访问index

from django.shortcuts import render,HttpResponse,redirect,HttpResponseRedirect

# Create your views here.

from django.contrib.auth.decorators import login_required
from django.contrib.auth import  login,authenticate

@login_required
def index(request):
    return HttpResponse(‘ok‘)

def accounts_login(request):
    if request.method==‘GET‘:

        return  render(request,‘login.html‘)
    else:
        username=request.POST.get(‘username‘)
        password=request.POST.get(‘password‘)
        user= authenticate(username=username,password=password)
        if user:
            login(request,user)
            print("OK................")
            return redirect(‘/index‘)
        else:
            err_msg="loging error"
            return render(request, ‘login.html‘,{‘err_msg‘:err_msg})

urls.py
@login_required 默认登录页为accounts/login/

from django.conf.urls import url
from django.contrib import admin
from app01 import  views

urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
    url(r‘^index/‘, views.index),
    url(r‘^accounts/login/‘, views.accounts_login),

]

login.html
可以调用form,这里简单测试未调用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<form action="" method="post">
    {% csrf_token %}

    <div><input type="text" name="username">username</div>
    <div><input type="text" name="password">password</div>
    <div><input type="submit" value="login now"></div>
</form>

{% if err_msg %}
    <div>{{ err_msg }}</div>
{% endif %}

</body>
</html>

以上是关于django 内置模块auth的login与authenticate功能简单测试的主要内容,如果未能解决你的问题,请参考以下文章

Auth模块

Auth模块

未授权客户端:客户端不允许授予类型“授权代码”。 Django -auth0 -login

django的权限认证:登录和退出。auth模块和@login_required装饰器

扩展Django内置的auth模块代码示例

Django-Auth模块