Python Django Cookie 简单用法解析

yipeiwu_com5年前Python基础

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

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 验证成功

给 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设计】。

相关文章

VScode编写第一个Python程序HelloWorld步骤

VScode编写第一个Python程序HelloWorld步骤

一、软件下载与安装 VScode下载地址:https://code.visualstudio.com/ VScode的github项目地址(本文用不到):https://github....

利用Python暴力破解zip文件口令的方法详解

利用Python暴力破解zip文件口令的方法详解

前言 通过Python内置的zipfile模块实现对zip文件的解压,加点料完成口令破解 zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的cla...

python flask 如何修改默认端口号的方法步骤

场景:按照github文档上启动一个flask的app,默认是用5000端口,如果5000端口被占用,启动失败。 样例代码: from flask import Flask...

Pandas删除数据的几种情况(小结)

开始之前,pandas中DataFrame删除对象可能存在几种情况 1、删除具体列 2、删除具体行 3、删除包含某些数值的行或者列 4、删除包含某些字符、文字的行或者列 本文就针对这...

ansible作为python模块库使用的方法实例

前言 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量...