django中session使用和用户认证装饰器
时间:2019-11-14
本文章向大家介绍django中session使用和用户认证装饰器,主要包括django中session使用和用户认证装饰器使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1、创建应该app01, 并在settings.py里面设置
2、在app01/ views.py视图里, 创建login 、 logout视图
from django.shortcuts import render, redirect, HttpResponse # Create your views here. def login_auth(func): def inner( request, *args, **kwargs ): if request.session.get("name"): return func(request, *args , **kwargs) else: old_path = request.get_full_path() return redirect("/login/?next=%s" % old_path) return inner def login(request): print( request.get_full_path()) if request.method == "POST": username = request.POST.get("username") password = request.POST.get("password") if username == "egon" and password == "123": request.session["name"] = "egon" request.session.set_expiry(0) old_path = request.GET.get("next") if old_path: red = redirect(old_path) else: red = redirect("/index") return red return render(request, "login.html") @login_auth def index(request): return HttpResponse("我是index页面,只有登录的才能访问") @login_auth def home(request): return HttpResponse("我是home页面,只有登录的才能访问") def logout(request): request.session.clear() return render(request,"login.html") def setSession(request): print(request.session) print(request.session.get("name")) request.session["name"] = "egon_2" return HttpResponse("设置session")
3、创建 模板 templates/login.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="" method="POST"> <input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}"> <p>用户名:<input type="text" name="username"> </p> <p>密 码:<input type="password" name="password"> </p> <p>用户名:<input type="submit" value="登录"> </p> </form> </body> </html>
4、配置路由
from django.contrib import admin from django.urls import path from app01 import views urlpatterns = [ path('admin/', admin.site.urls), path("login/", views.login), path("index/", views.index), path("home/", views.home), path("logout/", views.logout), path("set_session/", views.setSession), ]
5、运行结果如下:
访问后,设置session,是存放在数据库 django_session表中的
原文地址:https://www.cnblogs.com/harryTree/p/11861146.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Yii框架参数配置文件params用法实例分析
- 使用Kotlin实现文字渐变TextView的代码
- thinkPHP5框架路由常用知识点汇总
- PHP实现一个限制实例化次数的类示例
- AndroidStudio中重载方法@Override的使用详解
- mysqli扩展无法在PHP7下升级问题的解决
- PHP通过文件保存和更新信息的方法分析
- PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
- PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
- android之json数据过长打印不全问题的解决
- PHP实现时间日期友好显示实现代码
- AndroidStudio插件GsonFormat之Json快速转换JavaBean教程
- android studio错误: 常量字符串过长的解决方式
- Android Shader着色器/渲染器的用法解析
- PHP实现的文件浏览器功能简单示例