python - 第二次 url 调用时类未刷新

标签 python url persistence cherrypy

我有一个网页,其中包含指向 URL 例如/customer/showitem?id=7 的链接,该网页使用类 customer 中的方法 showitem() 在子窗口中显示特定客户的详细信息。该方法可以设置客户类属性的值,该属性控制加载页面时显示的警报(例如 self.onloadalert="警告!客户欠债了。")。

如果客户窗口关闭,然后再次打开(可能使用不同的 ID,例如/customer/showitem?id=8),新客户的详细信息将正确显示,但仍然会出现上面的加载警告,因为 customer.自上次调用以来 onloadalert 没有改变(我已经通过调试验证了这一点)。看起来即使该方法在第二次 url 调用时从头开始运行,客户类(及其所有属性值)仍然保留在上一次调用中。

我可以通过在 showitem() 开头重置该特定属性来解决该属性的问题,但是其他 customer.attributes 呢? (特别是如果有很多的话) - 我无法按名称重置它们!如何确保每个 url 调用都会重新加载该类(从而重新初始化)?

我正在使用 CherryPy (3.20rc1),尽管我猜这个问题也适用于使用相同/class/method?params url 格式的其他框架。

如有任何帮助,我们将不胜感激。

艾伦

最佳答案

如果您希望数据仅在一次请求中保留,请将其粘贴到 cherrypy.request 对象上:

cherrypy.request.onloadalert="Warning!"

cherrypy.request 对象会被完全销毁并为每个请求重新创建,即使它是可以安全导入的。弄清楚如何做留给读者作为练习。 ;)

关于python - 第二次 url 调用时类未刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3314833/

相关文章:

Python:从父文件夹导入文件

python - Gurobi:获取优化运行时

python - 空白断言错误

html - 网络路径引用 URI/方案相对 URL

javascript - 获取 iFrame 的当前 URL

php - 如何在wordpress中更改像seo友好的url

java - JPA 实体不刷新(为每个事务使用新的 EntityManger)

arrays - 如何使用 NSUserDefaults 存储字典数组

firebase - 注销应用程序时调用.setPersistenceEnabled(false),不起作用

python - 如何在单个 gpu 上运行多个 keras 程序?