Django 使用会话( sessions )功能

640

题图:by kacozi from Instagram

640

淘宝、天猫、京东等电商网站的出现,让我们足不出户就能购物。在这些网站中,都有一个“购物车”的功能。当我们在不同商品页面将商品加入购物车,然后关闭浏览器。等下次浏览该网站时,我们会依然发现购物车的商品还在。这是怎么实现的了?类似这种场景,一般都是采用 Cookie + Session 方式来实现。

1 Cookie 机制

HTTP 协议是无状态的。所以服务器无法根据 HTTP 协议来辨别多个 HTTP 请求来自哪个用户。在实际场景中,服务器经常需要追踪客户端的状态。为了解决这个问题, Cookie 技术应运而生。

cookie 一开始是服务器产生的一段随机字符串。它的主要内容包括:名字,值,过期时间,路径与域等信息。然后服务器将其发送给客户端。在后续的请求中,cookie 会附在请求资源的 HTTP 请求头上,发送给服务器。

2 Session 机制

如果不涉及用户登录等敏感信息时,Cookie 能够满足大部分的场景需求。而客户端(如浏览器)会将 Cookie 是保存在硬盘中。如果用户登录敏感信息保存到 cookie 中,会存在安全性问题。因为当 HTTP 请求被黑客拦截,然后劫持 cookie 信息。黑客就可以凭借该 cookie 登录对应的网站。

Session 的出现很好地解决的这个问题。Session 机制是一个服务器端的机制。它会将信息保存服务器端,跟客户端通信只需要一个随机的字符串 session_id。如果客户端没有禁止 Cookie 功能,session_id 通常是保存在 Cookie中 的。如果 Cookie 被禁用,它则可能通过为 url 加上query string 来添加 session_id。

3 在 Django 中的应用

Django 为我们提供了一个通用的 Session 框架。使用 Django 2.X 版本创建新项目的

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django提供了许多内置的功能模块,这些模块可以帮助开发者更高效地构建Web应用程序。以下是一些常用的Django内置功能模块: 1. django.contrib.admin:提供了一个自动生成的管理后台界面,用于管理和操作数据库中的模型数据。 2. django.contrib.auth:提供了用户认证和授权相关的功能,包括用户注册、登录、注销、密码重置等。 3. django.contrib.sessions:提供了会话管理功能,用于跟踪用户的会话状态。 4. django.contrib.messages:提供了消息传递功能,用于在请求之间传递临时消息。 5. django.contrib.staticfiles:用于管理和提供静态文件(如CSS、JavaScript、图像等)。 6. django.contrib.sitemaps:用于生成网站地图,方便搜索引擎抓取和索引网站内容。 7. django.contrib.gis:提供了地理信息系统(GIS)相关的功能,包括地理数据模型和查询。 8. django.contrib.contenttypes:提供了动态内容类型的支持,允许在运行时创建新的模型类型。 9. django.contrib.redirects:用于管理URL重定向规则,可以将一个URL重定向到另一个URL。 10. django.contrib.humanize:提供了一些人性化的过滤器和标签,用于格式化数据(如日期、时间、文件大小等)。 除了以上提到的模块,Django还提供了很多其他的内置功能模块,涵盖了从视图、表单、模板、数据库等方面的功能。开发者可以根据需求选择和使用这些内置功能模块,以提高开发效率和代码质量。同时,Django也支持通过第三方插件来扩展和增强功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值