Django用户登录和注销(一)

基于函数和标准前端

1、写好views.py函数

django.contri.auth 内置authenticate, login ,logout。

authenticate能验证用户信息是否正确,成功返回该用户,否则返回None

login,logout分别用于登录和注销

from django.shortcuts import render, redirect
from django.urls import reverse
from django.contrib.auth import authenticate, login, logout


# 函数实现
def user_login(request):
    if request.method == "GET":
        return render(request, "login.html")
    if request.method == "POST":
        username = request.POST.get("username", "")
        password = request.POST.get("password", "")
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect(reverse("index"))
        else:
            return render(request, "login.html")


def user_logout(request):
    logout(request)
    return redirect(reverse("index"))

2、配置urls.py

from django.contrib import admin
from django.urls import path, re_path
from django.views.generic.base import TemplateView

from users import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', TemplateView.as_view(template_name="index.html"), name="index"),
    re_path('^login/$', views.user_login, name="login"),
    re_path('^logout/$', views.user_logout, name="logout"),
]

 3、利用bootstrap写好前端

如果用户登录了,那么request.user.is_authenticated为真,用词函数判断用户是否登录了。

index.html



    
    主页
    
	
	


    

login.html



    
    登录
    
	
	


    
{% csrf_token %}

有空再更新基于类的视图和forms做验证。

更详细的可以参加官方文档:https://docs.djangoproject.com/en/2.1/topics/auth/default/

你可能感兴趣的:(Django)