Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >学习Python,Python web应用程序在请求之间保持活动

学习Python,Python web应用程序在请求之间保持活动
EN

Stack Overflow用户
提问于 2012-08-22 01:01:56
回答 4查看 360关注 0票数 0

我是一个学习Python的PHP程序员,只要我有机会。

我读到Python web应用程序在两次请求之间保持活动。这意味着数据留在内存中,并在请求之间可用,对吗?

我想知道它是如何工作的。

在php中,我们放置一个带有唯一令牌的cookie,并将数据保存在会话中。会话是保存在磁盘或数据库上的阵列。在请求会话函数之间,根据具有唯一令牌的cookie恢复正确的会话数组。这意味着每个浏览器都有自己独特的会话,并且会话有一个预设的过期时间。如果用户处于非活动状态,并且触发了过期获取,那么会话将被清除。当用户返回时,必须创建一个新的会话。

我的理解是Python不需要这个,因为应用程序在请求之间保持活动。

在Python中,不是每个请求都有一个唯一的线程吗?

它如何区分请求,谁是请求者?

是否有将用户和应用程序之间的var分开的处理方法?

假设我保存了一个字典,这个字典是在来自任何浏览器的所有请求之间全局可用,还是只对那个浏览器可用。

何时以及如何清除内存。如果一切都留在记忆中。如果应用程序在没有重启的情况下运行了几年该怎么办?必须有某种到期设置或内存处理?

一位评论者说,这取决于网络应用程序。所以我使用Bottle.py来学习。

EN

回答 4

Stack Overflow用户

发布于 2012-08-22 01:15:23

我假设答案将取决于您在python中使用的web应用程序框架。它们中的一些包含会话管理组件,可以跨请求跟踪用户。但是,如果您只有一个基本的端口侦听器响应http,那么您将不得不自己构建任何cookie支持或会话管理。

另一个较大的区别是,在php中,您在服务器上安装了一个模块,实际的http服务器委托该模块来生成响应。PHP不处理响应的路由或实际服务。其中,python实际上可以是用于生成响应的服务器和资源。这取决于在运行服务器的机器上安装/访问python的方式。所以从这个意义上说,你可以在python web应用程序中做任何你想做的事情。

如果你感兴趣,你应该看看一些可用的python web frameworks

编辑:我看到你提到了bottle.py,开箱即用,它没有提供身份验证和会话管理,因为它是一个用于快速原型的微型框架,不一定适合大规模的应用程序(尽管不是不可能的,只是做了很多工作)。

票数 0
EN

Stack Overflow用户

发布于 2012-08-22 01:40:24

是也不是。如果你使用check out this question,你就会知道它是如何在Django应用程序中工作的。

然而,你陈述的方式,它将不会工作。在一个请求中定义一个字典而不将其传递到任何地方,以便在下一个请求中访问它,显然不会使它在其他请求中可用。所以,是的,你有这样做的选择,但这不是开箱即用的理由!

票数 0
EN

Stack Overflow用户

发布于 2012-08-23 09:16:26

在使用Twisted's web服务器之前,我能够在请求之间持久化Python语言中的对象。我还没有试着自己看看它是否会在不同的浏览器之间持续存在,但我有一种感觉。以下是文档中的代码片段:

Twisted包括一个事件驱动的web服务器。这是一个示例web应用程序;注意资源对象如何在内存中持久存在,而不是在每次请求时重新创建:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from twisted.web import server, resource
from twisted.internet import reactor

class HelloResource(resource.Resource):
    isLeaf = True
    numberRequests = 0

    def render_GET(self, request):
        self.numberRequests += 1
        request.setHeader("content-type", "text/plain")
        return "I am request #" + str(self.numberRequests) + "\n"

reactor.listenTCP(8080, server.Site(HelloResource()))
reactor.run()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12065072

复制
相关文章
使用Intent在活动之间穿梭
Intent是Android中各组件进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据.
Dream城堡
2018/12/12
6040
Android - 使用Intent在活动之间穿梭
Intent有多个构造函数的重载,其中一个 Intent(Context packageContext,Class<?>cls)
博博1998
2022/04/25
5290
深入浅出web服务器与python应用程序之间的联系
简单来说,Web服务器是在运行在物理服务器上的一个程序,它永久地等待客户端(主要是浏览器,比如Chrome,Firefox等)发送请求。Web 服务器接受 Http Request,返回 Response,很多时候 Response 并不是静态文件,因此需要有一个应用程序根据 Request 生成相应的 Response。这里的应用程序主要用来处理相关业务逻辑,读取或者更新数据库,根据不同 Request 返回相应的 Response。两者之间的桥梁就是WSGI。 一直喜欢研究比较底层的技术, 之前就对python web框架web.py的运行机制比较迷惑, 大概学习了下之后发现flask框架以及Django框架都是基于python WSGI协议, python提供了一个简易的wsgi服务器实现--wsgiref, 在网站上找了两个例子运行了一下, 讲真, 第一次运行起来就比较懵逼, 尽管知道底层是依赖于socket, 但是深入一点就没有再研究了, 也看不懂。于是花了几天, 踏踏实实的看了源码, 一边百度一边理解, 终于学到了很多。有时候觉得自己让asp.net"惯坏"了, 因为微软闭源的关系, 自己掌握的基础知识并不全, 在很多的框架使用上, 仅仅会, 原理说个三三四四的, 还是差了很多, 果然开源就是好, 一言不合攻源码, 的确是学到了很多, python也是个很强大的语言, 这是我阅读其源码最大的感受。 讲真, 在没有读这两篇文章之前, 尽管我对web服务器, web框架有了解, 但还是比较模糊, 这两篇文章写的很好。伯乐在线也是个不错的技术网站! 阅读完这两篇文章后, 那就有一定的基础了。先上代码:
Ryan_OVO
2023/10/18
1590
深入浅出web服务器与python应用程序之间的联系
python教程:用简单的Python编写Web应用程序
python现在已经成为很多程序员关注的编程语言之一,很多程序员也都开始弄python编程,并且很多时候都会用自己的操作来选择,而现在不管是程序员还是少儿编程,都会有python这门课,今天就和大家分享一下。
全栈程序员站长
2022/09/08
2.3K0
python教程:用简单的Python编写Web应用程序
python学习(四)--POST请求
from urllib import request import urllib import re #网页版有道翻译是ajax的post请求。 #浏览器请求地址http://fanyi.youd
py3study
2020/01/17
8160
基础学习python(3)活动是否开始
原题目是手动输入:星期、时间判断是否活动开始,我在想是不是能够自动获取时间判断是否活动开始
adventureisoutthere
2020/02/18
5500
基础学习python(3)活动是否开始
开始在Kubernetes运行Python应用程序
你知道你想要在Kubernetes中运行应用程序,但不知道从哪里开始。或者你刚刚开始,但不知道自己不知道什么。在本博客中,你将了解如何封装应用程序,并使其在Kubernetes运行。
CNCF
2019/12/04
3.5K0
开始在Kubernetes运行Python应用程序
0x5 Python教程:Web请求
本教程将演示如何使用Python创建Web请求。有几个Python模块可以更轻松地创建和制作/解析Web请求/响应(httplib,Mechanize,Beautiful Soup和urllib / urllib2)。安装这些模块并查看其功能。
重生信息安全
2020/04/26
7460
Python 实现窗口保持置顶
今天一边看视频一边用 Typora 记笔记的时候发现一个问题, Typora 自带的 保持窗口在最前端不知何故会失效, 所以我就想用 Python 写一个可以让窗口强制指定的工具, 毕竟在查阅文档的时候还是有些用处的.
Rikka
2022/01/19
4.5K0
Python Web 学习资料汇总
image Test-Driven Development with Python
马哥Python
2019/06/27
1.4K0
Python Web 学习资料汇总
Python Web框架Django学习
=================================================================================================
py3study
2020/01/07
8390
Python Web框架Django学习
基于Python的Web应用程序的Web服务器比较
在本文中,我们将讨论三个主要内容:Python,Web服务器,最重要的是两者之间的比较。
用户2188327
2020/07/03
2.1K0
基于Python的Web应用程序的Web服务器比较
Python Web学习笔记之Python多线程基础
多线程理解 多线程是多个任务同时运行的一种方式。比如一个循环中,每个循环看做一个任务,我们希望第一次循环运行还没结束时,就可以开始第二次循环,用这种方式来节省时间。 python中这种同时运行的目的是最大化利用CPU的计算能力,将很多等待时间利用起来。这也说明如果程序耗时不是因为等待时间,而是任务非常多,就是要计算那么久,则多线程无法改善运行时间。 更多有关多线程理解的内容可以参考下面资料 廖雪峰教程 知乎回答 百度一下还有非常多的说明,这里不再赘述 简单使用 先看下面这个函数 import time de
Jetpropelledsnake21
2018/05/02
7770
python之web模块学习-- htt
httplib 是python中http协议的客户端实现,可以使用该模块来与 HTTP 服务器进行交互
py3study
2020/01/08
6800
python之web模块学习-- url
  下面继续学习python的web模块 ---  urllib2,一个源于urllib又高于urllib的模块。
py3study
2020/01/09
7490
小朋友学Python Web(2):Get和Post请求
如果你要做一个App项目,比如iOS或安卓项目,这时App和后端的项目是分离的。 此时要发网络请求,可以采用Get方式,也可以采用Post方式。 这里先介绍Get方式。 新建client_get.py,模拟客户端的GET请求 client_get.py中的完整代码为
海天一树
2018/10/08
7960
小朋友学Python Web(2):Get和Post请求
map在python2和python3之间的兼容性
本文由腾讯云+社区自动同步,原文地址 http://blogtest.stackoverflow.club/map-has-no-len-in-python3/
羽翰尘
2019/11/20
9680
Python - SocketIO 请求
代码保存为demoserverjs格式, 启动node   demoserver.js
py3study
2020/01/07
1.3K0
pickle在python2和python3之间的兼容性
本文由腾讯云+社区自动同步,原文地址 http://blogtest.stackoverflow.club/pickle-in-python2-python3/
羽翰尘
2019/11/21
1.4K0
点击加载更多

相似问题

Python请求保持活动

11

Python Post请求保持活动

118

python套接字句柄保持活动请求

11

在请求之间保持web应用程序状态

21

使web请求保持活动状态

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文