我熟悉基本的会话概念,在经典ASP中使用过它们,并在Perl中深入了解了它们,但我没有看到很多针对Python的内容。Beaker看起来很有趣,但文档似乎需要WSGI中间件,这又回到了框架问题。
我在ActiveState上找到了一个旧的会话配方,显然需要一些改进。保存的信息不是任何人都会担心被抓取的内容,因此虽然我通常非常注重安全性,但我愿意在这个原型中放松一点。
还是说这是一个“自己动手”的问题?
我将在IIS 7.0上使用Python 2.6。
session.your_session_name = "blabla" # or whatever you want to store
要制作一个cookie,只需看这里。
在web2py中,您无需配置任何内容。只需下载并启动web2py.py(您必须安装python 2.6<)。您还可以找到一些示例和Web幻灯片。
Python Cookie模块仅仅是将一些值保存在类似于字典的对象中,但我认为您必须自己将其存储在硬盘上。
session.your_session_name = "blabla"
“your_session_name”不是您的会话名称。它将是您使用名称“your_session_name”存储会话的变量。例如:session.your_variable = "bla"
session.your_other_variable = "blablabla"
- mdipierroCherryPy值得一试。是的,它是一个框架,需要WSGI,但与其他更强大的替代品相比,它非常轻巧。
在SO上有另一个问题的答案,简要介绍如何使用CherryPy管理会话。正如您所看到的,它使快速启动变得非常容易。
最后,这里有一个小文档,介绍如何设置IIS以与CherryPy一起使用。
WSGI不是一个框架,也不需要您选择一个框架——它是在任何支持Python的Web服务器上运行任何Python Web应用程序框架的标准方式,包括CGI。如果您有一个名为app
的WSGI应用程序,并且想在CGI上运行它,请参阅文档并使用wsgiref.handlers.CGIHandler().run(app)
,如文档所述。
因此,您可以完全通过WSGI(在CGI之上)使用Beaker——例如,采用Beaker的文档中的示例,只需添加(所需的导入和)上面的run
调用(使用该示例构造的wsgi_app
对象,当然还有一个session.save
以及如Beaker文档所解释的其他必要内容)。
丰富或繁重的框架有其存在的价值,但像 Beaker 这样的轻量级、灵活的组件也同样重要——而 WSGI 中间件是利用这些组件的绝佳方式,无需任何“框架式”的安排,只需要好老的 WSGI(在 CGI 或其他任何东西之上)。
顺便说一句,在 IIS 上运行 WSGI 的最佳方式可能是 isapi-wsgi(我只能说“可能”,因为我没有 IIS 安装来测试它;-)。但只要您编写符合 WSGI 标准的代码(使用任何框架或根本不使用框架),那么这只是一种优化——您的应用程序不会改变(除了您需要调用的处理程序的 run
或等效方法之外;-),无论它运行在 CGI、通过 ISAPI 在 IIS 上、Google App Engine 上还是任何其他服务器和接口组合上。