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中的ConfigParser模块使用详解
May 04 Python
深入理解python中的闭包和装饰器
Jun 12 Python
python检测主机的连通性并记录到文件的实例
Jun 21 Python
python之消除前缀重命名的方法
Oct 21 Python
详解Python传入参数的几种方法
May 16 Python
PyQt5 QListWidget选择多项并返回的实例
Jun 17 Python
使用NumPy读取MNIST数据的实现代码示例
Nov 20 Python
Flask中endpoint的理解(小结)
Dec 11 Python
Python函数基本使用原理详解
Mar 19 Python
Python单元测试及unittest框架用法实例解析
Jul 09 Python
python如何获得list或numpy数组中最大元素对应的索引
Nov 16 Python
Python读取和写入Excel数据
Apr 20 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发送短信代码分享
2015/08/11 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
IE中直接运行显示当前网页中的图片 推荐
2006/08/31 Javascript
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
JQuery点击事件回到页面顶部效果的实现代码
2016/05/24 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
微信小程序 tabs选项卡效果的实现
2017/01/05 Javascript
原生JS实现左右箭头选择日期实例代码
2017/03/14 Javascript
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
[42:27]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第三局
2016/03/05 DOTA
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
详解Python字符串对象的实现
2015/12/24 Python
Python探索之自定义实现线程池
2017/10/27 Python
Python爬虫实现(伪)球迷速成
2018/06/10 Python
Python批量修改图片分辨率的实例代码
2019/07/04 Python
Django 外键的使用方法详解
2019/07/19 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
2019/07/23 Python
利用python实现周期财务统计可视化
2019/08/25 Python
详解python中docx库的安装过程
2019/11/08 Python
python实现处理mysql结果输出方式
2020/04/09 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
2020/07/07 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
局域网定义和特性
2016/01/23 面试题
C#里面可以避免一个类被其他类继承么?如何?
2013/09/26 面试题
我的求职计划书
2014/01/10 职场文书
2014年公司庆元旦活动方案
2014/03/05 职场文书
甲午大海战观后感
2015/06/02 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫
CSS 鼠标选中文字后改变背景色的实现代码
2023/05/21 HTML / CSS