2024-05-20 02:03:07 发布
网友
我需要从Google日历中提取事件,以便在用Django构建的站点上显示它们。我不确定什么是最好的方法,但我相信数据应该被缓存(我的网站/应用程序现在不使用任何缓存)。在
因为我不需要事件归档,所以我想避免使用数据库。在
我正在考虑的方法是:
欢迎提出改进程序或部分程序的建议。在
更新:我考虑过使用JavaScript,但是如果API关闭,数据将不可用。但如果这被认为是一个可以接受的解决方案,我将不得不进一步研究。在
我的方法是通过调用ajax和gdata客户机库的javascript版本来避免缓存。在
“iCalendar”有什么特性吗(这是一个用于处理这种数据的python模块吗?)你不能用javascript复制?在
这种方法可以节省存储和处理,并且很可能为您提供响应最快的站点。在
我同意@marr75,因为您可以使用JavaScript实现您想要的功能(参见Google的JavaScript page for the GCal API)。在
一种解决方案是编写自己的custom management command,填充Django的low level cache,然后在模板中使用这些变量。然后,可以将此管理命令设置为作为cronjob定期运行,以保持数据的新鲜。您不必缓存单个变量—您可以始终缓存使用iCalendar(我假设是this)构造的整个HTML块。在
如果你能更详细地说明它是什么,那么我可以给出一个比这个稍微有用的答案。另外,您可能还想看看Django的per-view cache decorator。在
编辑:示例如下:
from django.core.cache import cache # Generate HTML block to cache html = '<div>Calendar</div>' # Cache the HTML as 'google_calendar' cache.set('google_calendar', html, 3600)
然后在您的视图中,您只需将缓存的HTML传递回它,如下所示:
我的方法是通过调用ajax和gdata客户机库的javascript版本来避免缓存。在
“iCalendar”有什么特性吗(这是一个用于处理这种数据的python模块吗?)你不能用javascript复制?在
这种方法可以节省存储和处理,并且很可能为您提供响应最快的站点。在
我同意@marr75,因为您可以使用JavaScript实现您想要的功能(参见Google的JavaScript page for the GCal API)。在
一种解决方案是编写自己的custom management command,填充Django的low level cache,然后在模板中使用这些变量。然后,可以将此管理命令设置为作为cronjob定期运行,以保持数据的新鲜。您不必缓存单个变量—您可以始终缓存使用iCalendar(我假设是this)构造的整个HTML块。在
如果你能更详细地说明它是什么,那么我可以给出一个比这个稍微有用的答案。另外,您可能还想看看Django的per-view cache decorator。在
编辑:示例如下:
然后在您的视图中,您只需将缓存的HTML传递回它,如下所示:
^{pr2}$相关问题 更多 >
编程相关推荐