session项目文件:

templates模板:

login.html

  1. {% load static %}
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>login</title>
  7. </head>
  8. <body>
  9. <div>
  10. 用户名:<input type="text" id="username"><br>
  11. 密码:<input type="password" id="password"> <br>
  12. <button id="submit">登录</button><pan id="warning" style="color: red"></pan>
  13. {% csrf_token %}
  14. </div>
  15. </body>
  16. <script src="{% static 'jquery-3.4.1.js' %}"></script>
  17. {#<!--<script src="{% static 'js/login.js' %}"></script>--><!--ajax中有url的反向解析,只能放在html模板中-->#}
  18. <script>
  19. $(function () {
  20. $('#submit').click(function () {
  21. $.ajax({
  22. url:"{% url 'login' %}",
  23. type:'post',
  24. data:{
  25. username:$('#username').val(),
  26. password:$('#password').val(),
  27. csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(),//可以直接放在headers里边
  28. },
  29. success:function (response) {
  30. console.log(response)
  31. if (response.status===0){
  32. //$('#submit').after('<span><i>账号或密码有误</i></span>')
  33. $('#warning').text('账号或密码有误')
  34. }else if (response.status===1){
  35. location.href=response.url
  36. }
  37. }
  38. })
  39. })
  40. });
  41. </script>
  42. </html>

login.html

  index.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>index</title>
  6. </head>
  7. <body>
  8. <div>
  9. <h1>欢迎来到首页</h1>
  10. </div>
  11. <a href='{% url 'more' %}'>more</a>
  12. </body>
  13. </html>

index.html

  more.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>more</title>
  6. </head>
  7. <body>
  8. <div><h1>更多信息</h1></div>
  9. </body>
  10. </html>

more.html

viwes.py 

  1. from django.shortcuts import render,redirect
  2. from django.http import JsonResponse
  3. from django.urls import reverse
  4. # Create your views here.
  5. def login(request):
  6. if request.method=='GET':
  7. return render(request,'login.html')
  8. elif request.method=='POST':
  9. name=request.POST.get('username')
  10. psd=request.POST.get('password')
  11. if name=='yang' and psd=='':
  12. #在使用session之前必须在数据库创建相关的表(django_session)
  13. #调用request.session首先会接收请求头部的cookie是否有sessionid,进行表查询对比
  14. #如果有重新生成一个sessionid进行覆盖更新记录,
  15. # 没有则新建存进表中的session_key,同时将字典信息加密自动存进表中的session_data字段
  16. request.session['status']=True
  17. request.session['name']=name
  18. status=1
  19. url=reverse('index')
  20. else:
  21. status=0
  22. url=''
  23. return JsonResponse({'status':status,'url':url})
  24.  
  25. def login_auth(func):
  26. def inner(request):
  27. if request.session.get('status'):#在判断网页请求的状态时,直接调用request.sessiondjang_session表中读取数据验证
  28. return func(request)
  29. else:
  30. return redirect('login')
  31. return inner
  32. @login_auth
  33. def index(request):
  34. return render(request,'index.html')
  35.  
  36. @login_auth
  37. def more(request):
  38. # request.session.flush()#同时删除客户端和服务端的session
  39. return render(request,'more.html')

views.py

urls.py

  1. from django.conf.urls import url
  2. from django.contrib import admin
  3. from app01 import views
  4.  
  5. urlpatterns = [
  6. url(r'^admin/', admin.site.urls),
  7. url(r'^login/', views.login, name='login'),
  8. url(r'^index/', views.index, name='index'),
  9. url(r'^more/', views.more, name='more'),
  10. ]

urls.py

Django操作session实例的更多相关文章

  1. Django(34)Django操作session(超详细)

    前言 session: session和cookie的作用有点类似,都是为了存储用户相关的信息.不同的是,cookie是存储在本地浏览器,session是一个思路.一个概念.一个服务器存储授权信息的解 ...

  2. Django操作session

    session是存放在服务端的,在django中使用session必须要先在数据库中创建django_session表,session相关信息都要依赖此表 获取session request.sess ...

  3. Django操作cookie实例

     cookie项目文件: templates模板: login.html {% load static %} <!DOCTYPE html> <html lang="en& ...

  4. day55:django:cookie&session

    目录 1.Cookie 1.Cookie前戏 2.Cookie的引入 3.django中操作cookie 2.Session 1.cookie的局限性 2.session技术 3.django操作se ...

  5. {Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session

    Django基础八之cookie和session 本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 ...

  6. C#操作session的类实例

    本文实例讲述了C#操作session的类.分享给大家供大家参考.具体分析如下: 这个C#类对session操作进行了再次封装,可以大大简化session的常用操作,同时这个类可以将session值设置 ...

  7. Django 操作Cookie与Session

    目录 Cookie Session Django中操作Cookie 基本操作 基于cookie的登录装饰器 Django中操作Session 基本操作 Session流程解析 基于session的登录 ...

  8. 137.在Django中操作session

    在Django中操作session 在django中session默认情况下是存储在服务器的数据库中的,在表中会根据sessionid来提取指定的session数据,然后再把这个sessionid放到 ...

  9. 在pycharm中批量插入表数据、分页原理、cookie和session介绍、django操作cookie

    昨日内容回顾 ajax发送json格式数据 ''' 1. urlencoded 2. form-data 3. json ''' 1. ajax $.ajax({ data: JSON.stringi ...

随机推荐

  1. 【Linux常见命令】cp命令

    cp - copy files and directories 拷贝文件或目标文件夹,默认不能直接拷贝目录,通过-r参数设置递归复制目录 copy 语法: cp [OPTION]... [-T] SO ...

  2. 《Redis设计与实现》之第十二章:事件

    Redis服务器是一个事件驱动程序,服务器需要处理两类事件: 文件事件: 文件事件就是服务器对套接字(socket)操作的抽象,服务器和客户端的通信会产生文件事件 时间事件: 时间事件就是服务器对定时 ...

  3. Java中的集合Queue

    2019独角兽企业重金招聘Python工程师标准>>> package com.zhaogang.test; import org.junit.Test; import java.u ...

  4. Java之JVM(初学者)

    学习Java的第一次总结 1.Java程序的编译和执行 通过上图,我们轻易得出java执行过程:由javac编译为字节码文件,通过JVM转换为底层操作系统可识别的命令操作. 注意:①Java跨平台的始 ...

  5. 题解 CF1286A 【Garland】

    updata on 2020.3.19 往博客园搬的时候看了看自己以前写的blog 其实没多久,才两个多月,感觉自己之前写的东西好罗嗦啊.. 但也是最近写的blog才开始多起来 当然现在也没好到哪去. ...

  6. muduo网络库源码学习————线程本地单例类封装

    muduo库中线程本地单例类封装代码是ThreadLocalSingleton.h 如下所示: //线程本地单例类封装 // Use of this source code is governed b ...

  7. Android RecyclerView滚动类控件修改、去掉滑动边界的阴影效果

    前言 滚动类控件,大家都用的很多,如 RecyclerView.NestedSrollView.... 下面以recyclerView为例讲解,其他滚动控件也同理. RecyclerView 滚动列表 ...

  8. mysql5.7 修改密码,修改权限

    1.修改数据库对指定用户和ip权限 a. IP为192.168.0.1的用户jack拥有对数据库datebase的表table的 增删改查权限, ,连接密码为password grant select ...

  9. vue后台管理系统介绍

    项目GitHub地址:https://github.com/Little-Orange7/cmms-vue 一.简介 很多公司稍微复杂一点的业务,基本上都需要后台管理系统,来对业务进行各个维度的统计. ...

  10. A. Hilbert's Hotel(数学)

    传送门 \(看了一下网上都没什么题解,自己写一篇吧,对你有帮助的话留个言吧~\) \(\color{Orange}{----------------------分割------------------ ...