cookie项目文件:

  

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) {
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, HttpResponse, redirect
from django.urls import reverse
from django.http import JsonResponse #cookie的使用,更多的用session 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 == '':
dic = {'status': 1, 'url': reverse('index')}
rep = JsonResponse(dic)
rep.set_cookie('login', True)
rep.set_cookie('name', name)
else:
dic = {'status': 0, 'url': reverse('login')}
rep = JsonResponse(dic)
return rep #(1)普通视图函数内部检验登录状态
'''
#登陆成功之后才能访问主页
def index(request):
# print(request.COOKIES)
if request.COOKIES.get('login'):
return render(request, 'index.html')
else:
return redirect('login') # 登录成功之后才能访问
def more(request):
if request.COOKIES.get('login'):
return render(request, 'more.html')
else:
return redirect('login')
''' #(2)用装饰器实现状态检验 # 登录状态认证装饰函数
def login_auth(func):
def inner(request):
if request.COOKIES.get('login'):
return func(request)
else:
return redirect('login')
return inner @login_auth
def index(request):
return render(request, 'index.html') @login_auth
def more(request):
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操作cookie实例的更多相关文章

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

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

  2. Django 操作Cookie与Session

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

  3. Django(33)Django操作cookie

    前言 cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了解决这个问题,第一次登录 ...

  4. django操作cookie和session

    一.cookie:保存在客户端浏览器上的键值对 Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会 ...

  5. Django操作session实例

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

  6. Django操作cookie

    浏览器清空cookie快捷键:ctrl+shift+delete,cookie中包含csrf认证信息 获取Cookie request.COOKIES['key'] request.COOKIES.g ...

  7. 12 Django之Cookie和Session

    一.什么是Cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接 ...

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

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

  9. [py]flask操作cookie&django的seesion和cookie机制

    浏览器同源策略(same-origin policy) csrf攻击防御核心点总结 django的cookie和session操作-7天免登录 flask操作cookie&django的see ...

随机推荐

  1. MarkDown排版测试

    1.标题设置 标题(大标题) 标题(小标题) 标题(一级标题) 标题( 二级标题) 标题(三级标题) 标题(四级标题) 备注:大标题与一级标题一样,小标题与二级标题一样,"#"前无 ...

  2. Spring5参考指南:AOP代理

    文章目录 AOP代理 AOP Proxies原理 AOP代理 通常来说Spring AOP有两种代理方式,一种默认的JDK代理,只能代理接口,一种是CGLIB代理,可以代理具体的类对象. Spring ...

  3. docker容器介绍

                       Docker容器 一.什么是Docker? Docker时Docker.Lnc公司开源的一个基于LXC技术之上搭建的Container容器引擎,源代码托管在Git ...

  4. 徐州A

    #include<bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=a;i<=b;++i) #defi ...

  5. Java Web:jstl处理字符串

    用法:${fn:methodName(args....)} 在使用这些函数之前必须在JSP中引入标准函数的声明<%@ taglib prefix="fn" uri=" ...

  6. C# 对 TCP 客户端的状态封装

    TCP客户端连接TCP服务器端有几种应用状态: 与服务器的连接已建立 与服务器的连接已断开 与服务器的连接发生异常 应用程序可按需求合理处理这些逻辑,比如: 连接断开后自动重连 连接断开后选择备用地址 ...

  7. CodeForces - 260C

    CodeForces - 260C Little Vasya had n boxes with balls in the room. The boxes stood in a row and were ...

  8. 数据库SQL---实体-联系模型(E-R模型)

    1.E-R模型的基本概念与表示 1)实体与实体集 (1)实体:可以是有形的.实在的事物(如每个员工),可以是抽象的.概念上存在的事物(如一个部门). (2)实体的特征:独立存在.可区别于其他实体. ( ...

  9. Alink漫谈(一) : 从KMeans算法实现不同看Alink设计思想

    Alink漫谈(一) : 从KMeans算法实现不同看Alink设计思想 目录 Alink漫谈(一) : 从KMeans算法实现不同看Alink设计思想 0x00 摘要 0x01 Flink 是什么 ...

  10. HTTP头部信息和错误代码详解-《HTTP权威指南》

    最近在调试 前后端分离的请求测试,遇到了一个405错误, 无法接受,于是开始了人肉搜索405. 最后 还是HTTP头部信息里的Accept:application/json 这个Accept 导致的, ...