session项目文件:

templates模板:

login.html

 {% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<div>
用户名:<input type="text" id="username"><br>
密码:<input type="password" id="password"> <br>
<button id="submit">登录</button><pan id="warning" style="color: red"></pan>
{% csrf_token %}
</div>
</body>
<script src="{% static 'jquery-3.4.1.js' %}"></script>
{#<!--<script src="{% static 'js/login.js' %}"></script>--><!--ajax中有url的反向解析,只能放在html模板中-->#}
<script>
$(function () {
$('#submit').click(function () {
$.ajax({
url:"{% url 'login' %}",
type:'post',
data:{
username:$('#username').val(),
password:$('#password').val(),
csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(),//可以直接放在headers里边
},
success:function (response) {
console.log(response)
if (response.status===0){
//$('#submit').after('<span><i>账号或密码有误</i></span>')
$('#warning').text('账号或密码有误')
}else if (response.status===1){
location.href=response.url
}
}
})
})
});
</script>
</html>

login.html

  index.html

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<div>
<h1>欢迎来到首页</h1>
</div>
<a href='{% url 'more' %}'>more</a>
</body>
</html>

index.html

  more.html

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>more</title>
</head>
<body>
<div><h1>更多信息</h1></div>
</body>
</html>

more.html

viwes.py 

 from django.shortcuts import render,redirect
from django.http import JsonResponse
from django.urls import reverse
# Create your views here.
def login(request):
if request.method=='GET':
return render(request,'login.html')
elif request.method=='POST':
name=request.POST.get('username')
psd=request.POST.get('password')
if name=='yang' and psd=='':
#在使用session之前必须在数据库创建相关的表(django_session)
#调用request.session首先会接收请求头部的cookie是否有sessionid,进行表查询对比
#如果有重新生成一个sessionid进行覆盖更新记录,
# 没有则新建存进表中的session_key,同时将字典信息加密自动存进表中的session_data字段
request.session['status']=True
request.session['name']=name
status=1
url=reverse('index')
else:
status=0
url=''
return JsonResponse({'status':status,'url':url}) def login_auth(func):
def inner(request):
if request.session.get('status'):#在判断网页请求的状态时,直接调用request.session从djang_session表中读取数据验证
return func(request)
else:
return redirect('login')
return inner
@login_auth
def index(request):
return render(request,'index.html') @login_auth
def more(request):
# request.session.flush()#同时删除客户端和服务端的session
return render(request,'more.html')

views.py

urls.py

 from django.conf.urls import url
from django.contrib import admin
from app01 import views urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^login/', views.login, name='login'),
url(r'^index/', views.index, name='index'),
url(r'^more/', views.more, name='more'),
]

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. 搭建phpMyAdmin

    MySQL常见的管理工具 今天选择的phpMyAdmin 一款基于浏览器管理数据库的工具. 下载可以去官网下载https://files.phpmyadmin.net/phpMyAdmin/4.7.5 ...

  2. ThinkJS前端搭配vue时的Nginx配置

    Thinkjs 作为奇舞团开源的nodejs mvc框架之一,引起了很多NodeJS程序员的亲赖.但是其关于静态文件处理部分支持不够完善,主要是体现在SPA单页应用,之前在ThinkJS 2.*版本时 ...

  3. 计算2的n次幂htm代码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Netty随记之ChannelInboundHandlerAdapter、SimpleChannelInboundHandler

    ChannelInboundHandlerAdapter ChannelInboundHandlerAdapter是ChannelInboundHandler的一个简单实现,默认情况下不会做任何处理, ...

  5. 数论--HDU 1495 非常可乐

    Description 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和se ...

  6. 2019/2/20训练日记+map/multi map浅谈

    Most crossword puzzle fans are used to anagrams - groups of words with the same letters in different ...

  7. RF(表格数据获取)

    一.表格数据获取 Get Table Cell [locator | row | col] 获取表格数据 Open Browser file:///D:/HBuilderX/workspace/Pro ...

  8. ansible roles 自动化安装

    例:  ansible roles 自动化安装memcached 文件目录结构如下: cat memcached_role.yml - hosts: memcached remote_user: ro ...

  9. python的unittest框架中的assert断言

    unittest框架自带断言,如果想用assert断言,一定要引入unittest.TestCase框架才行,不然不会自动识别assert断言

  10. 细说 PEP 468: Preserving Keyword Argument Order

    细说 PEP 468: Preserving Keyword Argument Order Python 3.6.0 版本对字典做了优化,新的字典速度更快,占用内存更少,非常神奇.从网上找了资料来看, ...