Django登录与注销

一:Django中自带着登录,验证功能不用自己再去写登录功能。

1、从相应模块导入组件功能

from django.contrib.auth import authenticate,login

2、从request中拿到用户名密码,验证,验证通过获取到用户对象,不通过为None。

        username = request.POST.get("username")
        password = request.POST.get("password")
        user = authenticate(username=username,password=password)

3、通过之后登录用户,涉及到session操作

        if user:
            # 登录,此时生成了session
            login(request,user)
            return redirect("/crm/")
        else:
            print("no pass")

二:Django中自带注销用户功能。

1、注销标签

<li><a href="{% url 'logout' %}">注销</a></li>
{% url 'logout' %} 表示url中名字为logout的,即name='logout'

2、注销view函数

from django.contrib.auth import authenticate,login,logout

def acc_logout(request):
    logout(request)    # 注销
    return redirect("/login/")    # 页面跳转

三:登录时用户名或者密码出错时,显示错误提示信息:

1、前端页面

            <span style="color: red">{{ error_msg }}</span>

2、后台处理,加上错误信息

    error_msg = ''      # 正确时
    error_msg = 'Wrong username or password!'    
    print(username,password)
return render(request,"login.html",{"error_msg":error_msg})# 错误时

四:没有登录时,不能进入主页面,只能跳转到登录页面

扫描二维码关注公众号,回复: 4714474 查看本文章

具体的哪个视图函数需要,加在哪个视图函数上

from django.contrib.auth.decorators import login_required
@login_required
def dashboard(request):
    return render(request,"crmapp/dashboard.html")

这样没有登录,直接访问连接到该视图函数的url时,会跳转到Django自带的登录页面。

需要在settings中配置,

LOGIN_URL = '/login/'

  注意url中的next参数:http://127.0.0.1:8080/login/?next=/crm/,表示登录成功后跳转到哪个页面。

猜你喜欢

转载自www.cnblogs.com/zjsthunder/p/10200815.html