首页 > 其他分享 >Django设置、使用Cookie

Django设置、使用Cookie

时间:2023-02-06 14:24:11浏览次数:36  
标签:req request Django cookie mode 设置 Cookie id

使用背景:

前端根据用户选择的模块,结合ajax实现局部刷新,进到到具体模块页面后,返回,希望保持到原来选择的模块上,这就需要保存当前选择的模块id;

尝试:

1、使用Js的设置cookie,doucument.cookie = 设置cookie,设置之后,cookie值没有;要在服务器端启动,才能正常设置;不用这个方式;

2、使用Django里面的cookie,实现cookie的设置;需要引入 from django.shortcuts import render, redirect, HttpResponse;

设置cookie

实例化设置cookie的对象,以下三种方式

Req = HttpResponse(...) 或 rep = render(request, ...) 或req=redirect()

rep.set_cookie(key,value,...)

可以增加max_age=10,设置cookie的最大超时时间

获取cookie

c_mode_id = request.COOKIES.get("kw_mode_id")

可以增加判断,如果获取到的cookie为空时,可以设置默认值

使用cookie

通常需要结合获取cookie一起使用,通过将要显示的数据和cookie的值,返回给页面,重新进行渲染

 

实现代码:

def post(self, request):
     req = redirect('keywords')
     req.set_cookie("kw_mode_id", 3) # 设置cookie值
     return req
class testView(View):
    def get(self, request):
        models = Test.objects.filter(status=False).all()
        c_mode_id = request.COOKIES.get("kw_mode_id") # 根据key,获取对应cookie的值
        if c_mode_id is None:
            c_mode_id = 7
        return render(request, 'page/tests.html', {'data': models, 'c_mode_id': int(c_mode_id)})

标签:req,request,Django,cookie,mode,设置,Cookie,id
From: https://www.cnblogs.com/cuitang/p/17095262.html

相关文章

  • MySQL最大连接数设置
    CannotconnecttoMySQLserver. Toomanyconnections”-mysql1040错误,这是因为访问MySQL且还未释放的连接数目已经达到MySQL的上限。通常,mysql的最大连接数默认是100,......
  • Emacs portable 在windows系统中的设置
     虽然说在emacs主要是在linux和mac下使用,但总有人需要在windows上用。但是windows上默认的配置文件路径太长,且放在C盘。通过改变环境变量是最直接的办法。查阅文档(emac......
  • Centos7 设置默认启动界面为命令行
    有时候我们安装了Centos7后如果安装了GNOME的话,启动后默认都是进入到GNOME的GUI图形化界面中去的,但是实际的情况是我们可能因为某种原因,比如想要更加轻便一点,以命令行界面......
  • element-ui 日期时间选择器el-date-picker 设置禁止选择日期
    element-ui日期时间选择器el-date-picker设置禁止选择日期使用日期选择器时,有的时候需要禁止选择一些日期,我们可以通过快捷选项picker-options对象中的禁用日期属性dis......
  • 网络很慢mtu设置
    [root@db-*****etc]#cat/etc/rc.local#!/bin/sh##Thisscriptwillbeexecuted*after*alltheotherinitscripts.#Youcanputyourowninitializations......
  • 表单形式上传文件时为何必须设置enctype属性
    在制作浏览器上传文件的功能时,常常会在表单中设置enctype属性这是为什么呢?首先要了解的是:什么叫做编码技术,数字编码是只采用数字和有关特殊字符来表示数据和指令的编码。大......
  • 配置管理器设置编译项
    我们的解决方案如果设置了不同的编译选项,后续如果新加了项目,也要设置这些编译项,一定要右键解决方案属性,点击配置管理器,然后找到对应的项目,将编译项对应添加上去,这样在设置......
  • linux activemq内存设置,ActiveMQ进阶配置
    配置web管理页面的安全认证默认的web页面用户名密码admin:admin,非常不安全,编辑jetty-realm.properties文件,(用户:密码,组)admin:admin123,adminuser:user123,us......
  • Git 全局代理设置
    【待补充】...git设置和取消代理(github.com) 查看配置 gitconfig--list HowtosetimportantGitconfigglobalproperties(theserverside.com)......
  • wsl2设置静态IP
    参考:https://zhuanlan.zhihu.com/p/593263088https://zhuanlan.zhihu.com/p/600042961首先需要打开Hyper-V,如果是Windows11家庭版则根据https://pureinfotech.com/in......