Django操作cookie实例
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实例的更多相关文章
- 在pycharm中批量插入表数据、分页原理、cookie和session介绍、django操作cookie
昨日内容回顾 ajax发送json格式数据 ''' 1. urlencoded 2. form-data 3. json ''' 1. ajax $.ajax({ data: JSON.stringi ...
- Django 操作Cookie与Session
目录 Cookie Session Django中操作Cookie 基本操作 基于cookie的登录装饰器 Django中操作Session 基本操作 Session流程解析 基于session的登录 ...
- Django(33)Django操作cookie
前言 cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了解决这个问题,第一次登录 ...
- django操作cookie和session
一.cookie:保存在客户端浏览器上的键值对 Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会 ...
- Django操作session实例
session项目文件: templates模板: login.html {% load static %} <!DOCTYPE html> <html lang="en& ...
- Django操作cookie
浏览器清空cookie快捷键:ctrl+shift+delete,cookie中包含csrf认证信息 获取Cookie request.COOKIES['key'] request.COOKIES.g ...
- 12 Django之Cookie和Session
一.什么是Cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接 ...
- {Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session
Django基础八之cookie和session 本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 ...
- [py]flask操作cookie&django的seesion和cookie机制
浏览器同源策略(same-origin policy) csrf攻击防御核心点总结 django的cookie和session操作-7天免登录 flask操作cookie&django的see ...
随机推荐
- php 对象的调用和引入
直接上实例: 定义: <?php namespace app\php; class a { ; public function index() { echo "; } static f ...
- php class 访问控制
属性(attribute ) 必须声明访问控制类型 类型: public 公用 protected 受保护的 private 私有的 public 类型的属性 可以在外部访问 protected 及 ...
- ansible一键安装mysql8.0
ansbile安装: # ansible在CentOS7中需要安装epel仓库 yum install -y epel-release yum install -y ansible 安装有好几种方法, ...
- 再也不用c刷题了!!——c++刷题必备
致读者: 博主是一名数据科学与大数据专业大二的学生,真正的一个互联网萌新,写博客一方面是为了记录自己的学习历程,一方面是希望能够帮助到很多和自己一样处于困惑的读者.由于水平有限,博客中难免会有一些错误 ...
- 解决Vue-cli3.0下scss文件编译过慢、卡顿问题
在使用Vue-cli 3.0构建的项目中,可能存在项目编译过慢的问题,具体表现在编译时会在某一进度比如40%时停顿,等好一会儿才能够编译完成.这使得浏览器中的实时预览也会卡顿,不利于我们快速查看效果, ...
- Java演示设计模式中的写代码的代码
下边代码内容是关于Java演示设计模式中的单件模式的代码,应该是对小伙伴们有所用处. public class SimpleSingleton { private static SimpleSingl ...
- muduo网络库源码学习————Timestamp.cc
今天开始学习陈硕先生的muduo网络库,moduo网络库得到很多好评,陈硕先生自己也说核心代码不超过5000行,所以我觉得有必要拿过来好好学习下,学习的时候在源码上面添加一些自己的注释,方便日后理解, ...
- 《C程序设计语言》 练习1-22
问题描述 练习1-22 编写一个程序,把较长的输入行“折”成短一些的两行或者多行,折行的位置在输入行的第N列之前的最后一个非空格之后.要保持程序能够智能地处理输入行很长以及在制定的列前没有空格或者制表 ...
- POJ 2777——线段树Lazy的重要性
POJ 2777 Count Color --线段树Lazy的重要性 原题 链接:http://poj.org/problem?id=2777 Count Color Time Limit: 1000 ...
- opencv基于PCA降维算法的人脸识别
opencv基于PCA降维算法的人脸识别(att_faces) 一.数据提取与处理 # 导入所需模块 import matplotlib.pyplot as plt import numpy as n ...