Python Django Cookie 简单用法解析


Posted in Python onAugust 13, 2019

home.html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>个人信息页面</title>
</head>
<body>
<p>个人信息页面</p> 
</body>
</html>

只有返回一串字符串

login.html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>登录页面</title>
</head>
<body> 
<p>登录页面</p> 
<form action="/login/" method="post">
  {% csrf_token %}
  <p>
    账号:
    <input type="text" name="user">
  </p>
  <p>
    密码:
    <input type="text" name="pwd">
  </p>
  <p>
    <input type="submit" value="登录">
  </p>
</form>
</body>
</html>

要考虑加上 csrf_token,不然会 403

Python Django Cookie 简单用法解析

login 函数:

from django.shortcuts import render, redirect
from app01 import models
def login(request):
  if request.method == "POST":
    username = request.POST.get("user")
    password = request.POST.get("pwd")
    if username == "admin" and password == "admin":
      rep = redirect("/home/") # 得到一个响应对象
      rep.set_cookie("login", "success") # 设置 cookie
      return rep
  return render(request, "login.html")

set_cookie() 中的第一个参数为 key,第二个参数为 value

home 函数:

from django.shortcuts import render, redirect
from app01 import models 
def home(request):
  ret = request.COOKIES.get("login") # 获取 cookie 的 value
  if ret == "success":
    # cookie 验证成功
    return render(request, "home.html")
  else:
    return redirect("/login/")

输入账号、密码:admin,cookie 验证成功

Python Django Cookie 简单用法解析

给 cookie 加盐:

login 函数:

from django.shortcuts import render, redirect
from app01 import models
def login(request):
  if request.method == "POST":
    username = request.POST.get("user")
    password = request.POST.get("pwd")
    if username == "admin" and password == "admin":
      rep = redirect("/home/") # 得到一个响应对象
      # rep.set_cookie("login", "success") # 设置 cookie
      rep.set_signed_cookie("login", "success", salt="whoami") # 设置 cookie 并加盐
      return rep
  return render(request, "login.html")

home 函数:

from django.shortcuts import render, redirect
from app01 import models
def home(request):
  # ret = request.COOKIES.get("login") # 获取 cookie 的 value
  ret = request.get_signed_cookie("login", salt="whoami") # 获取加盐后 cookie 的 value
  if ret == "success":
    # cookie 验证成功
    return render(request, "home.html")
  else:
    return redirect("/login/")

输入账号、密码:admin,cookie 验证成功

Python Django Cookie 简单用法解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用python登录Dr.com思路以及代码分享
Jun 25 Python
Python读取ini文件、操作mysql、发送邮件实例
Jan 01 Python
Python3使用requests发闪存的方法
May 11 Python
Python+OpenCV实现图像融合的原理及代码
Dec 03 Python
Python的log日志功能及设置方法
Jul 11 Python
python下载库的步骤方法
Oct 12 Python
pygame实现俄罗斯方块游戏(基础篇3)
Oct 29 Python
Python环境下安装PyGame和PyOpenGL的方法
Mar 25 Python
浅谈Python中的生成器和迭代器
Jun 19 Python
Django缓存Cache使用详解
Nov 30 Python
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
Apr 13 Python
总结三种用 Python 作为小程序后端的方式
May 02 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
Aug 13 #Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
Aug 13 #Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
Aug 13 #Python
Django rstful登陆认证并检查session是否过期代码实例
Aug 13 #Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
Aug 13 #Python
python实现对服务器脚本敏感信息的加密解密功能
Aug 13 #Python
python多线程+代理池爬取天天基金网、股票数据过程解析
Aug 13 #Python
You might like
用PHP的ob_start();控制您的浏览器cache!
2007/02/14 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
php实现水仙花数的4个示例分享
2014/04/08 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
Open and Print a Word Document
2007/06/15 Javascript
Js获取事件对象代码
2010/08/05 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
JS小功能(列表页面隔行变色)简单实现
2013/11/28 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
2015/06/01 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
2016/12/24 Javascript
javascript监听页面刷新和页面关闭事件方法详解
2017/01/09 Javascript
关于TypeScript模块导入的那些事
2018/06/12 Javascript
JS简单判断是否在微信浏览器打开的方法示例
2019/01/08 Javascript
详解vue的数据劫持以及操作数组的坑
2019/04/18 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
python实现sublime3的less编译插件示例
2014/04/27 Python
Python实现在线程里运行scrapy的方法
2015/04/07 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
pytorch实现seq2seq时对loss进行mask的方式
2020/02/18 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
小小商店教学反思
2014/04/27 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书
2019年二手房买卖合同范本
2019/10/14 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python
图解上海144收音机
2021/04/22 无线电
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技
ant design vue的form表单取值方法
2022/06/01 Vue.js
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技