登入认证

Posted harveyjie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了登入认证相关的知识,希望对你有一定的参考价值。

一.自定义认证方法  

models.py

class Administrator(models.Model):
    username = models.CharField(max_length=32)
    password = models.CharField(max_length=32)

views.py

#登入函数 根据post请求拿到用户信息,从数据库验证后将session的 is_login字段设置成True,并返回默认首页
def
login(request): message = "" v = request.session print(type(v)) from django.contrib.sessions.backends.db import SessionStore if request.method == "POST": user = request.POST.get(user) pwd = request.POST.get(pwd) c = models.Administrator.objects.filter(username=user, password=pwd).count() if c: request.session[is_login] = True request.session[username] = user rep = redirect(/index.html) return rep else: message = "用户名或密码错误" obj = render(request,login.html, {msg: message}) return obj #注销函数 清除session信息 def logout(request): request.session.clear() return redirect(/login.html) #验证装饰器 def auth(func): def inner(request, *args, **kwargs): is_login = request.session.get(is_login) if is_login: return func(request, *args, **kwargs) else: return redirect(/login.html) return inner

#进入首页时需要验证用户是否登入
@auth
def index(request):
pass

 

二.Django自带的登入

   

from django.views import View
from django.contrib.auth.mixins import LoginRequiredMixin
from  django.contrib import auth
from django.contrib.auth.decorators import login_required
def login(request): if request.method=="GET": error_msg="请登录" return render(request,index/login.html,{"error_msg":error_msg}) if request.method=="POST": username = request.POST.get("username", "") password = request.POST.get("password", "")
#验证用户名密码 user
=auth.authenticate(username=username,password=password)
if user:
#验证后用户登入
auth.login(request,user)
return render(‘index.html‘)
# auth.logout() 用户退出

#CBV 模式的认证 继承系统的认证视图
class index(LoginRequiredMixin,View):
def get(request):
pass
#FBV 模式的认证   django自带的装饰器
@login_required
def index(request):
    pass

 






















以上是关于登入认证的主要内容,如果未能解决你的问题,请参考以下文章

单点登入系统怎么区分商家和一般会员的

Spring Security 如果是404直接报错,不要跳转认证?

sql默认数据库被删除,不能登入怎么办?

Django REST框架--认证和权限

Django-views,用户认证,login_requierd()

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段