Django之自带认证
自带登录实例
{% extends "layout/base.html" %} // 所有link {% block body %}
<div id="container" class="cls-container"> <!-- BACKGROUND IMAGE -->
<!--===================================================-->
<div id="bg-overlay" class="bg-img" style="background-image: url(img/bg-img-3.jpg)"></div> <!-- LOGIN FORM -->
<!--===================================================-->
<div class="cls-content">
<div class="cls-content-sm panel">
<div class="panel-body">
<div class="mar-ver pad-btm">
<h1 class="h3">LuffyAudit 堡垒机</h1>
<p>Sign In to your account</p>
</div>
<form method="POST">{% csrf_token %}
<div class="form-group">
<input type="text" name="username" class="form-control" placeholder="Username" autofocus>
</div>
<div class="form-group">
<input type="password" name="password" class="form-control" placeholder="Password">
</div> <button class="btn btn-primary btn-lg btn-block" type="submit">Sign In</button>
<span style="color:red;">{{ error }}</span>
</form>
</div> <div class="pad-all">
<a href="#" class="btn-link mar-rgt">Forgot password ?</a>
<a href="#" class="btn-link mar-lft">Create a new account</a> </div>
</div>
</div>
<!--===================================================--> </div>
<!--===================================================-->
<!-- END OF CONTAINER --> {% endblock %}
login.html
from django.db import models
from django.contrib.auth.models import User class Account(models.Model):
"""
堡垒机账户
1.扩展
2.继承
"""
user = models.OneToOneField(User, models.CASCADE)
name = models.CharField(max_length=64)
models.py
LOGIN_URL = '/login/'
settings.py
from django.shortcuts import render,redirect,HttpResponse
from django.contrib.auth import authenticate,login,logout
from django.contrib.auth.decorators import login_required # @login_required(login_url='/login/') # 单独添加login页面的url
# 或在settings.py设置全局LOGIN_URL = '/login/'
@login_required
def index(request):
return HttpResponse("成功登录index页面!")
return render(request,"index.html") def acc_login(request):
error = ''
if request.method == "POST":
username = request.POST.get("username")
password = request.POST.get("password")
user = authenticate(username=username,password=password) # 认证
if user:
login(request,user) # 登录
return redirect(request.GET.get('next') or "/index/") # 若有next字段,则跳转到该url,否则index页面
else:
error = "Wrong username or password" return render(request,"login.html",{"error":error}) @login_required
def acc_logout(request):
logout(request) # 登出
return redirect("/login/")
views.py
结果:
单独登录login页面
直接访问index页面,views里的login_required装饰器会跳转到login页面,同时会带有?next=/index/字段的url
此处需在login函数里配置
return redirect(request.GET.get('next') or "/index/")
成功登录
Django之自带认证的更多相关文章
- Django的自带认证系统——auth模块
Django自带的用户认证 auth模块 from django.contrib import auth 备注:使用auth模块时,我们默认使用Django提供的auth_user表,创建数据时,可以 ...
- Django 中的用户认证
Django 自带一个用户认证系统,这个系统处理用户帐户.组.权限和基于 cookie 的 会话.本文说明这个系统是如何工作的. 概览 认证系统由以下部分组成: 用户 权限:控制用户进否可以执行某项任 ...
- Django Rest framework 之 认证
django rest framework 官网 django rest framework 之 认证(一) django rest framework 之 权限(二) django rest fra ...
- day 65 Django基础十一之认证系统
Django基础十一之认证系统 本节目录 一 auth模块 二 User对象 三 扩展默认的auth_user表 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 auth模块 我们 ...
- Django基础八之认证模块---auth
Django基础八之认证模块---auth 目录 Django基础八之认证模块---auth 1. auth介绍 2. autho常用操作 2.1 创建用户 2.2 验证用户 2.3 验证用户是否登录 ...
- [原创]django+ldap实现统一认证部分二(python-ldap实践)
前言 接上篇文章 [原创]django+ldap实现统一认证部分一(django-auth-ldap实践) 继续实现我们的统一认证 python-ldap 我在sso项目的backend/lib/co ...
- [原创]django+ldap实现统一认证部分一(django-auth-ldap实践)
前言 接之前我的文章,django+ldap+memcache实现单点登录+统一认证 ,ldap部署相关,ldap双机\LAM配置管理\ldap备份还原,目前来说,我们已经有了高可用性的ldap环境了 ...
- ASP.NET Core 实现带认证功能的Web代理服务器
引言 最近在公司开发了一个项目,项目部署架构图如下: 思路 如图中文本所述,公司大数据集群不允许直接访问外网,需要一个网关服务器代理请求,本处服务器A就是边缘代理服务器的作用. 通常技术人员最快捷的思 ...
- mongodb主从(副本集附仲裁节点)部署带认证模式
环境:OS:CentOS 7DB:3.0.15机器角色:192.168.1.134:10001 主192.168.1.135:10002 从192.168.1.135:10003 仲裁节点 1.下载相 ...
随机推荐
- python matplotlib quiver——画箭头、风场
理解参考:https://blog.csdn.net/liuchengzimozigreat/article/details/84566650 以下实例 import numpy as np impo ...
- 关于html5 audio 标签在ios系统上不能正常自动播放的解决办法
由于 iOS Safari 限制不允许 audio autoplay, 必须用户主动交互(例如 click)后才能播放 audio, 因此我们通过一个用户交互事件来主动 play 一下 audio. ...
- iptables基础配置
启动指令:service iptables start 重启指令:service iptables restart 关闭指令:service iptables stop 规则相关配置:/e ...
- 使用putty进行ssh tunnel远程内网机器
通常我们通过登录具有外网ip的远程机器来连接内网的机器:本文介绍,通过putty进行ssh tunnel,进而达到使用本机直接连接远程内网机器: 1,在putty中创建一个session,输入具有外网 ...
- 博弈论之SG函数
Fibonacci again and again(http://acm.hdu.edu.cn/showproblem.php?pid=1848) Time Limit: 1000/1000 MS ( ...
- 使用canvas通过js制作一个小型英雄抓怪兽的2D小游戏
首先,这是一个HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- Phpstorm如何连接服务器
当服务器是Linux的时候不懂指令觉得很懊恼,这个时候直接就可以使用PHPstorm连接服务器操作了: 1丶准备工作 首先你先要准备服务器丶phpstorm这两个吧! 2丶开始配置phpstorm 按 ...
- 常用模块 - openpyxl模块
一.简介 xlrd/xlwt 主要是针对Office 2003或更早版本的XLS文件格式 缺点:不支持XLSX文件格式 OpenPyXL 能读能写能修改 缺点:不支持XLS Microsoft Exc ...
- Onvif获取rstp地址GetCapabilities能力时,出现error 4或者52的的解决方法
在获取Onvi能力soap_call___tds__GetCapabilities的接口中有时候会出现error:4或者52的情况,是因为在soapC.c中用不到extension,所以我们必须得把它 ...
- mssqlserver分区表的左值与右值
参考官方文档: https://docs.microsoft.com/zh-cn/sql/t-sql/statements/create-partition-function-transact-sql ...