Django | Tornado | Flask 三种web框架的会话跟踪(session|cookie)

Python三大Web框架对比:Django、Flask、Tornado的异步实现方式详解 异步编程是一种能够让程序在等待某个任务(例如I/O操作)完成时,继续执行其他任务的编程方式。与传统的同步编程方式不同,异步编程不会阻塞主线程,它能够更高效地利用计算资源。在Web开发中,异步编程尤其适用于处理I/O密集型操作,比如数据库查询、文件读取、网络请求等。异步编程的好处在于能显著提升处理高并发请求的能力。Django是一个功能全面的Web框架,采用了MTV(Model-Template-View)架构,适合快速开发和开发大型Web应用。 阅读详情

Session
启动session
Django中是通过在setting.py文件中向INSTALLED_APPS列表中添加’django.contrib.session’和MIDDLEWARE_CLASSES列表中添加’django.contrib.sesssion.middleware.SessionMiddleware’
Tornado中默认没有提供session,需要在cookie里设置sessionID。
Flask中session是在cookie功能的基础上实现的在服务器端保存状态数据的一个功能。和cookie操作方式不同是在使用session时,要添加一个安全混淆密匙(app.sercet_key)
使用session
Django中启用会话后,每个HttpRequest对象将具有一个session属性,它是一个类字典对象(request.session[“变量名”]=变量)
set_expiry(value):设置会话的超时时间,如果没有指定,则两个星期后过期
get(key, default=None):根据键获取会话的值(request.session.get(‘变量名’))
clear():清除所有会话(request.session.clear())
flush():删除当前的会话数据并删除会话的Cookie
del request.session[‘member_id’]:删除会话
Tornado中得自己封装
Flask中通过session[‘变量名‘]=变量 设置session值并保存在本地客户端cookie中,再通过session.get(’变量名‘)得到sessions值。
二 cookie
Django中通过响应对象来设置cookie:
respond.set_cookie(’username’,username,3600)
再通过request.cookie.get(‘username’)来获取值。
Tornado中通过self.set_cookie(name,value)
name cookie名
value cookie值
domain 提交cookie时匹配的域名
path 提交cookie时匹配的路径
expires cookie的有效期,可以是时间戳整数、时间元组或者datetime类型,为UTC时间
expires_days cookie的有效期,天数,优先级低于expires

再通过get_cookie(name, default=None)来获取cookie值。clear_cookie(name, path=’/’, domain=None)
删除名为name,并同时匹配domain和path的cookie。
clear_all_cookies(path=’/’, domain=None)
删除同时匹配domain和path的所有cookie。
另外Tornado还有一个安全Cookie:
使用安全Cookie需要为应用配置一个用来给Cookie进行混淆的秘钥cookie_secret,将其传递给Application的构造函数。我们可以使用如下方法来生成一个随机字符串作为cookie_secret的值。秘钥生成方式:base64.b64encode(uuid.uuid4().bytes + uuid.uuid4().bytes)
set_secure_cookie(name, value, expires_days=30)
设置一个带签名和时间戳的cookie,防止cookie被伪造。
get_secure_cookie(name, value=None, max_age_days=31)
如果cookie存在且验证通过,返回cookie的值,否则返回None。max_age_day不同于expires_days,expires_days是设置浏览器中cookie的有效期,而max_age_day是过滤安全cookie的时间戳。
  Flask中通常情况下cookie作为一个临时存储数据的容器,有存数据和取数据两种操作,通过make_response方法返回一个响应对象,再通过响应对象进行cookie设置(resp.set_cookie(name,value)),再通过request.cookies.get(name)来获取cookie值。

基于Tornado的Python全栈项目管理系统:从架构设计到生产部署 Web开发的核心在于理解HTTP请求处理、数据流动与页面渲染的完整流程。Python作为主流后端语言,其异步编程模型能有效提升I/O密集型应用的并发性能。Tornado框架凭借其非阻塞I/O和内置HTTP服务器,为构建高性能Web应用提供了轻量级解决方案,特别适合需要处理大量并发连接的项目管理、实时通知等场景。通过经典的MVC(Handler-Template-Model)架构,开发者可以清晰地实现用户认证、任务跟踪、团队协作等核心业务模块,并结合连接池、模板继承等技术优化工程实践。本文以一套完整的项目管理 阅读详情

相关推荐

Python 上位机开发

首先,什么是上位机?上位机通常是指可以与下位机(如单片机、传感器等硬件设备)进行通信和交互,实现数据采集、控制指令发送以及数据处理和展示的计算机程序。 Python 作为一种高级编程语言,在开发上位机方面具有诸多优势。它拥有丰富的第三方库,使得开发过程变得相对简单和高效。

weixin_46807151的博客 4303

Tornado vs Django选型分析

1. Tornado vs Django 整体思路就是列举收集到的框架优缺点,然后进行验证,从其他帖子收集到的优缺点汇总如下: Tornado: 优点:轻量、异步非阻塞IO处理方式、出色的抗负载能力、协程带来优异的处理性能 缺点:没有ORM,提供的支持和模板少,缺少后台支持,对小型项目来说开发速度没有django快 分析:tornado所谓的“缺点”是由它的设计理念决定的,设计上就决定它是一个小而精的http服务器+轻量级web框架,高并发处理才是它真正擅长的 Django: 优点:大而全的框架,..

kwame211的博客 1123

从零开始:手把手教你用Verilog搭建一个可配置的Cache模块(以Vortex GPGPU为例)

本文详细介绍了如何使用Verilog从零开始搭建一个可配置的Cache模块,以Vortex GPGPU为例。内容涵盖Cache设计基础、模块接口与参数化设计、核心子模块实现、仲裁与一致性机制、功能验证与性能调优等关键环节,适合RTL设计初学者和希望深入理解Cache工作原理的工程师。通过实战指南,读者可以掌握硬件代码分析技巧,提升Cache模块的设计能力。

weixin_42552315的博客 441

Django/Flask/Tornado三大web框架性能分析

写在前面:本文的数据涉及到之前遇到过的问题,大概一次 http 请求到收到响应需要多少时间。这个问题在实际工作中与框架有比较大的关系,因此特别就框架的性能做了一次分析。这...

IT派 2万+

LTspice导入德州仪器SPICE模型的实用指南与常见问题解析

本文详细介绍了如何在LTspice中导入德州仪器的SPICE模型,包括模型文件获取、路径管理、导入步骤及常见问题解析。通过实用指南帮助工程师精确仿真电路性能,提升设计效率,重点涵盖了第三方模型的导入教程和最佳实践。

kk1234的博客 313

《解锁GCC版本选择的奥秘:从入门到精通》

GCC 版本的选择是一项复杂而关键的决策,犹如一场精心策划的战略布局,贯穿于软件开发的整个生命周期。从项目需求与兼容性的深度考量,到性能与稳定性的权衡抉择,再到硬件与系统适配的精准对接,每一个环节都紧密相连,相互影响。在游戏开发行业,对性能的极致追求促使开发者青睐较新的 GCC 版本,以实现更流畅的游戏体验和更震撼的视觉效果;科学计算领域则依赖于 GCC 版本对复杂数学运算的高效优化,以应对大规模数据处理的挑战;嵌入式开发行业因硬件资源的限制和对稳定性的严苛要求,通常选择经过长期验证的稳定版本;

zheng_ruiguo的专栏 1419

Python:Django 和 Tornado 的关系

Django 和 Tornado 是两个用于 Python 编程语言的非常流行的 web 框架,但它们在设计理念、应用场景和性能特性上有显著的不同。

sheji888的专栏 937

遥感大模型的深度学习从CNN到Vision Transformer以及混合架构的演进之路

深度学习,特别是以卷积神经网络(CNN)和Transformer为代表的“大模型”技术,正以其强大的表征学习能力,深刻地重塑着遥感智能解译的整个技术栈与认知范式。本文将系统性地梳理遥感大模型从局部卷积的奠基,到全局注意力的革命,再到二者融合的混合架构演进这一波澜壮阔的历程。我们将深入剖析每个阶段的核心技术原理,结合遥感数据特性与实际应用案例,详细阐述其在分类、检测、分割等核心任务中的具体应用。

panshengwu的博客 1142

介绍两个Python web框架:Django & Tornado

在各种语言平台中,python涌现的web框架恐怕是最多的;猜想原因应该是在py中构造框架十分简单,使得轮子不断被发明。 这里记述一下我了解过的两个py web框架,供大家参考,希望能起他山之石的作用。 ====== Django ====== Django 应该是最出名的py框架,Google App Engine甚至Erlang都有框架受它影响。 Dj...

weixin_33948416的博客 716

YOLOv11改进 | Neck篇 | 双向特征金字塔网络BiFPN助力YOLOv11有效涨点

本文给大家带来的改进机制是BiFPN双向特征金字塔网络,其是一种特征融合层的结构,也就是我们本文改进YOLOv11模型中的Neck部分,它的主要思想是通过多层级的特征金字塔和双向信息传递来提高精度。本文给大家带来的结构可以让大家自行调节网络结构大小,同时能够达到一定的轻量化效果,为什么发BiFPN呢因为它算是YOLO系列改进中的常青树了,大家可以借鉴它的双向特征思想来创新自己的Neck结构本文的BiFPN通过yaml文件配置可以让大家自行调配其结构。

Snu77的博客 9104

在RStudio中使用GitHub Copilot:代码自动生成,从此告别手敲!

可以通过自定义提示词来引导Copilot生成符合自己需求的代码。再看一个做统计分析的。

Codewar的博客 333

python网络框架——Django、Tornado、Flask和Twisted

Django、Tornado和flask是全栈网络框架,而Twisted更专注于网络底层的高性能封装,不提供HTML模版引擎等界面功能,因此不能称为全栈框架。

weixin_42209537的博客 2087

华为OD机试 - 物流仓储多维度成本利润综合查询系统 - 二维数组(Python/JS/C/C++ 新系统 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。某物流企业在全国多个仓库开展仓储业务,需要对不同仓库、不同时段的入库成本、出库收入和库存损耗进行综合统计分析,用于生成 日报、周报和月报。字段说明及取值范围如下:warehouses: int[] 扁平化数组 [w0d0in, w0d0out,

学Java,找哪吒 309

学习记录(6)

今日学习综述 《图解HTTP》第五章、第六章,并简单复习一下前四章。 任务布置之web框架、HTTP相关知识 任务布置之web框架1. 框架是什么概念?为什么要有框架?用框架和不用框架的区别?Web应用框架(Web application framework)是一种开发框架,用来支持动态网站、网络应用程序及网络服务的开发。其类型有基于请求的和基于组件的两种框架。 web框架向程序员隐藏了处

sinat_38944746的博客 337

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

并行分布式框架:Celery、rq、funboost

Celery是一个异步任务的调度工具,也可以叫做 "分布式任务队列(Distributed Task Queue)"。

freeking101的博客 5万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

2-Django、Flask和Tornado三大主流框架对比

在Python的web开发框架中,目前使用量最高的几个是DjangoFlask和Tornado, 经常会有人拿这几个对比,相信大家的初步印象应该是Django大而全、Flask小而精、Tornado性能高。

linjun的博客 3878

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Django框架和Tornado框架的区别

在众多语言开发中,python涌现的web框架恐怕是最多的 Django Django 应该是最出名的python框架,Google App Engine甚至Erlang都有框架受它影响。 Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。 Django提供的方便,也意味着Django内置的...

Best_fish的博客 1734

python中的tornado框架和Django框架的区别

1,tornado:是python编写的web服务器兼容web应用的框架。 tornado的优势 (1),轻量级的web框架 (2),他提供了一种带有异步功能并允许他扩展到大量开放连接的简单的web框架。 (3),出色的坑负载能力 (4),优异的处理性能,不依赖多线程/多进程。 (5),wsgi全栈替代产品,推荐同时使用其web框架和http服务器。 2,Django框架 ...

658

django开发-django和tornado的不同

python中常用的几个web框架有django, tornado, flask等,今天来总结一下django和tornado的不同。工作中django和tornado都用过,使用django相对更多一些。个人感觉django虽然好用,有搭建项目快、自带ORM、自动生成路由、自带管理后台等优势;但若实际工作中选择,我还是会偏向于使用tor...

weixin_33693070的博客 559

python web服务框架-Python 四大主流 Web 编程框架

Python 四大主流 Web 编程框架目前Python的网络编程框架已经多达几十个,逐个学习它们显然不现实。但这些框架在系统架构和运行环境中有很多共通之处,本文带领读者学习基于Python网络框架开发的常用知识,及目前的4种主流Python网络框架:Django、Tornado、Flask、Twisted。网络框架及MVC架构所谓网络框架是指这样的一组Python包,它能够使开发者专注于网站应用...

weixin_37988176的博客 1018

Tornado与Django 对比

Django Django 是一个大而全的方向 注重的是高效的开发 它最初名的是器全自动化的管理后台 只需要使用器ORM 做简单的对象定义 他就能自动生成数据库结构 以及全功能的管理后台 Django 提供的方便,也意味着Django 内置的ORM跟框架内的其他模块耦合程度高,应用程序必须使用Django 内置的ORM 否则就不能享受到框架内提供的种种基于其ORM的便利。 session 功能 ...

xun的博客 1912

深度解析 Python 网络框架:Django、Tornado、Flask 和 Twisted

Python 作为一门优秀的高级语言,广泛应用于 Web 开发、数据科学、人工智能等领域。其中,网络框架是构建高效 Web 应用和服务的基础工具。Django、Tornado、Flask 和 Twisted 是 Python 生态中四个非常流行的网络框架,它们各自具有独特的特性和应用场景。 本文将从框架的特点、应用场景、优劣势、使用示例和对比分析等角度,帮助读者深入了解这四个框架,并在实际项目中选择最适合的解决方案。

fudaihb的博客 2938

Flask、Django和Tornado怎么选

Flask、Django和Tornado是三个常用的PythonWeb框架,它们在设计理念、功能和适用场景上有所不同。

qq_32312323的博客 1381

Tornado运行/部署Django

我们使用nginx+tornado+django的技术栈实现项目部署。

一越王超的博客 1351

django和flask中保持状态的比较(session和cookie)

语法比较,设置cookie都必须建立在response或其子类的基础上.flask    cookie设置from flask import Flask, make_response # 创建response对象 response = make_response('index') # 使用response对象写入cookie到浏览器,会话结束就过期 response.se...

jishuzhai_1208的博客 862
上一篇: Mongodb总结
下一篇: Django|Tornado项目部署
selectY
博客等级 码龄9年 6粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值