Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >cookie模块学习

cookie模块学习

作者头像
用户2936342
发布于 2018-08-27 06:04:45
发布于 2018-08-27 06:04:45
23600
代码可运行
举报
文章被收录于专栏:nummynummy
运行总次数:0
代码可运行

Cookie模块定义了一些类用来解析和创建HTTP cookie头部字段。

1.创建和设置Cookie

Cookie通常由服务器端来设置,并由客户存储和返回。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import Cookie

c = Cookie.SimpleCookie()
c["name"] = "jim"
print c.output()

输出结果为:

Set-Cookie: name=jim

输出是一个合法的Set-Cookie首部, 可以作为HTTP响应的一部分传递给客户端。

2.Morsel

还可以通过Cookie的Morsel对象来管理cookie的其他方面,比如到期时间,路径和域等。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import Cookie
import datetime

c = Cookie.SimpleCookie()
c["name"] = "jim"
c["name"]["comment"] = "some comment"
c["name"]["path"] = "/sub/path"
c["name"]["domain"] = "python"
c["name"]["secure"] = True
# 法一,通过max-age设置到期时间
c["name"]["max-age"] = 300
now = datetime.datetime.now()
expires = now + datetime.timedelta(hours=1)
expires_at_time = expires.strftime("%a, %d %b %Y %H:%M:%S")
# 法二,通过expires设置到期时间
c["name"]["expires"] = expires_at_time
print c

输出结果为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Set-Cookie: name=jim; Comment=some comment; Domain=python; expires=Fri, 21 Jul 2017 12:34:53; Max-Age=300; Path=/sub/path; secure

Cookie实例的键是所存储的各个cookie的名称,Morsel对象实际就是cookie名称对应的值,它与字典类似。

3.编码值

cookie首部需要对值编码,才能正确解析。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import Cookie

c = Cookie.SimpleCookie()
c["example"] = 'he said, "hello world "'
print c["example"].key
print c["example"].value
print c["example"].coded_value  

输出结果如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
example
he said, "hello world "
"he said\054 \"hello world \""

由上可以看出,Morsel.value是cookie的解码值,而Morsel.coded_value表示用来将值传输到客户。

4.接收和解析Cookie首部

当客户端收到服务器端发送的Set-Cookie首部后,在后续请求中它会使用一个Cookie首部把这些cookie返回到服务器,到来的Cookie首部串可能包含了多个cookie值,由分号隔开。

取决于服务器和框架,可以直接从首部或者HTTP_COOKIE环境变量得到cookie,而解码cookie可以通过将串传递给SimpleCookie或者使用load()方法来实现。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# coding:utf-8
import Cookie

HTTP_COOKIE = ";".join([r"name=jim", r"age=12"])

# 方法1
c1 = Cookie.SimpleCookie(HTTP_COOKIE)
print c1

# 方法2
c2 = Cookie.SimpleCookie()
c2.load(HTTP_COOKIE)
print c2

Cookie提供了三个不同的类SimpleCookieSerialCookieSmartCookie。它们的区别在于SimpleCookie只支持解析str类型的cookie,SerialCookie要求所有的值可序列化,SmartCookie两者都支持。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.07.21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Hexo的Next主题优化教程
陈某的独立博客搭建已经有三年多时间了,使用Hexo+Git,一直使用的主题是jacman,前几天女票看到说太LOW了,这哪能忍,必须换一个逼格高点的。
爱撒谎的男孩
2023/08/25
1.3K0
Hexo的Next主题优化教程
hexo 博客支持PWA和压缩博文
目标网站 https://blog.rmiao.top/ PWA yarn add hexo-offline 然后在root config.yml里新增 # offline config passed to sw-precache. service_worker: maximumFileSizeToCacheInBytes: 5242880 staticFileGlobs: - /**/*.{js,html,css,png,jpg,gif,svg,eot,ttf,woff,woff2} -
Ryan-Miao
2018/03/14
9240
个人博客主题美化
个人博客主题美化 选择主题 Hexo默认的主题是landscape,推荐以下主题: snippet Hiero JSimple BlueLake 详见:https://github.com/searc
小小咸鱼YwY
2019/09/11
1.5K0
个人博客主题美化
Hexo博客主题优化
在 themes/*/source/css/_custom/custom.styl 中添加如下代码:
达达前端
2019/07/03
8970
Hexo博客主题优化
快速搭建博客-高级篇-增加功能
侧栏设置包括:侧栏位置、侧栏显示与否、文章间距、返回顶部按钮等等 打开 主题配置文件 找到sidebar字段
瑞新
2020/07/08
6850
Hexo系列(2.0) - NexT主题美化与博客功能增强 · 第一章
网上有不少相关的帖子,不过版本会比较旧,而不同版本可能存在代码不同的问题,不过大部分还是大同小异,本系列就不啰嗦重复了,基本只会按照本人所使用的版本以及个人所使用到的内容来进行介绍。
雨临Lewis
2022/01/11
1.1K0
2019年末,来一发基于Hexo自建博客生态指南!
本文篇幅较长,涉及的面较广,通篇阅读大概需要半个小时左右。建议时间紧迫的大佬们可以先收藏文章,之后闲时再细细阅读,个人预览DEMO,有关文中具体涉及到的工具大家可以关注公众号《云爬虫技术研究笔记》回复关键词“博客”获取“一键图床工具”和“无损压缩工具”,可以查看原文获取更好的阅读体验。 必读前言
云爬虫技术研究笔记
2019/11/26
8790
2019年末,来一发基于Hexo自建博客生态指南!
博客从 typecho 迁移到 Hexo
Hexo 环境搭建 使用 coding 和 github.io 的 pages 服务,绑定了自己的域名,做了双线解析,国内用户解析到 coding ,国外用户解析到 github.io,访问速度很满意(本来就是静态文件,访问速度很快)。 Hexo 环境的搭建,这里不再赘述,主要介绍如何导出 typecho 的数据和 Hexo 站点的配置以及 Next 主题的配置及优化。 typecho 数据导出 文章数据的导出 花了点时间把 typecho 的文章全部改写成 Markdown 的格式,方便我导出为 md 文
tanmx
2018/07/16
2.4K0
使用Hexo+Next主题搭建Blog
之前试过了很多Hexo主题,但是都不太合胃口,就又又又转回了Next这种简单简约的主题。我的博客搭建在GitHub上,使用Vercel加速,完全白嫖真的快乐。
GOOPHER
2022/03/30
8390
使用Hexo+Next主题搭建Blog
Hexo NexT 评论系统 Valine 的使用
注明:以下方案是在 Valine 1.4.9 版本下完成,对于其他版本应该会根据实际情况修改参数,使用 F12 查看参数修改即可使用!(说明于 2020 - 04 - 25)
零式的天空
2022/03/28
1.8K0
这可能是迄今为止最全的hexo博客搭建教程
这是阮一峰在博客中写到的关于 Blog 的想法,而这里的第三阶段的实现就是利用 GitHub Pages 搭建博客。
程序员小明
2019/10/14
7.6K0
这可能是迄今为止最全的hexo博客搭建教程
Linux下使用 github+hexo 搭建个人博客04-next主题优化
本篇讲解 next 主题的优化,包括:使用语言、前端页面显示宽度、菜单、侧栏、头像、添加或取消动画效果、打赏功能等等。
踏歌行
2020/10/15
1.3K0
Linux下使用 github+hexo 搭建个人博客04-next主题优化
Hexo Next主题添加版权信息
主题配置文件下,搜索关键字 post_copyright , 将 enable 改为 true:
smartsi
2019/08/07
2.2K0
hexo搭建github个人博客
写一个shell文件,把上面的命令写到里面,这样就不用每次都敲一遍了,嘿嘿。。。例如:创建preview.sh,内容如下,这样就可以直接预览了:
七点一刻
2022/06/14
4480
hexo搭建github个人博客
Hexo-NexT搭建个人博客(二)
在 Hexo 中有两份主要的配置文件,其名称都是 _config.yml 。其中,一份位于站点根目录下,主要包含 Hexo 本身的配置;另一份位于主题目录下,这份配置由主题作者提供,主要用于配置主题相关的选项。 我们约定,将前者称为 站点配置文件,后者称为 主题配置文件
零式的天空
2022/03/22
3100
hexo-theme-next @modified LRH
如无必要,不再更新!(2019.09.13) 今晚我做出了一个慎重的决定,由于博主时间精力有限,需要更多的时间来工作和学习。所以我将放弃对 next 的主题的自定义修改,next 主题官方已经更新到了 7.0+的版本,喜欢 next 主题风格的朋友可以在 github 更新。 我这也算是上古版本了,版本差距实在过大,所以我也将放弃博客使用主题的更新。 以下仍为当前博客使用主题,lib 资源已打包 github。
Cell
2022/02/25
3210
hexo-theme-next @modified LRH
Hexo之魔法操作
这篇博文用来记录关于hexo的一些魔法操作,主要针对于NEXT主题。将会在未来很长一段时间内持续更新,希望对大家有所帮助。
Bess Croft
2020/04/03
8450
Hexo问题解决——持续更新
什么都弄好了,然后去访问的时候发现我的所有的文章都指向一个链接/post/default,然后我立即想起来了上次我更改了post的permalink,现在看来应该是改错了,然后阅读source code寻找解决方案:
wsuo
2020/07/31
6830
Hexo问题解决——持续更新
Hexo-NexT搭建个人博客(三)
  经过前面两期文章,我相信你已经可以在本地建立一个非常令人满意的静态博客了,本篇文章将介绍如何将自己的静态博客部署到 gitpage 上,并托管到 github 上;以及关于 Hexo 和 NexT 中更深层次的一些问题及解方案。
零式的天空
2022/03/22
4510
Hexo之Next主题美化代码
我分别美化了几个不同版本的Next主题,这里把美化代码公布出来,第一种Next版本小于7.3可使用
王瑞MVP
2022/12/28
2.2K0
相关推荐
Hexo的Next主题优化教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验