将Django网站作为静态文件进行烘焙有什么好的选择吗?

时间:2011-09-01 23:55:30

标签: python database django amazon-s3

假设您有一个现有的数据库支持的Django站点。简单的东西,比如包含每个小联盟棒球队记录的单一模型。该模型由一个列出所有团队的视图访问,另一个视图接受一个slug,然后创建一个关于该团队的详细信息页面。

是否有一个很好的选择将应用程序转换为一堆烘焙的平面文件,以便可以从亚马逊的S3等静态文件服务中提供?

我玩过Hyde,但我不清楚它是如何应用于数据库支持的现有网站的。

非常感谢任何建议。提前谢谢。

6 个答案:

答案 0 :(得分:2)

我理解你的意图,但是现在任何体面的框架都提供某种caching mecanism来缓解动态内容的痛苦。使用正确实现的缓存,静态和动态之间的差异将是微不足道的。相信我。

快乐的编码,朋友。

答案 1 :(得分:2)

刚刚宣布了一个新版本,虽然它已经存在并且已经被作者使用了很长时间:

django-medusa

我还没有尝试使用它,但它看起来确实很好:我会的!

答案 2 :(得分:2)

django-medusa基本上没有维护。这些是项目自述文件中提到的一些替代方案:

  

答案 3 :(得分:1)

我有一个类似的设置使用Django但在GAE上。我创建了一个构建脚本,用于构建我的静态HTML文件。由于GAE的Django模板版本略有不同,因此可能需要进行一些测试。

但基本上你做的事情就像

from django.template import Template, Context
from django.template.loader import get_template

t = get_template('template1.html')   #Need to verify this. GAE template allows me to just call template.render(path, context). Not sure about pure Django templates
c = Context({ 'variable' : 'value'})
with open("file1.html", "w") as f:
    f.write(t.render(c))   #This works for me, but if this doesn't in pure Django, try render_to_string

HTH

答案 4 :(得分:0)

您要求动态站点在静态环境中托管,这是不可能的。唯一的方法是导出所有文件,将它们放入静态服务器。您可以使用wget执行此操作,它将复制所有文件并将其转换为html。

这个问题的一个后备是,它只能创建html文件,如果有链接到页面,即。搜索表单等不会工作,基于Javascript的链接可能不会工作。

答案 5 :(得分:0)

我不熟悉将现有django网站转换为静态html网站的任何内容。可能值得一看新的django / python PaaS提供商套件。像这样的网站应该很容易在其中一个平台上运行,而且每月应该很便宜。

您可能想要结帐的某些提供商包括: