假设您有一个现有的数据库支持的Django站点。简单的东西,比如包含每个小联盟棒球队记录的单一模型。该模型由一个列出所有团队的视图访问,另一个视图接受一个slug,然后创建一个关于该团队的详细信息页面。
是否有一个很好的选择将应用程序转换为一堆烘焙的平面文件,以便可以从亚马逊的S3等静态文件服务中提供?
我玩过Hyde,但我不清楚它是如何应用于数据库支持的现有网站的。
非常感谢任何建议。提前谢谢。
答案 0 :(得分:2)
我理解你的意图,但是现在任何体面的框架都提供某种caching mecanism来缓解动态内容的痛苦。使用正确实现的缓存,静态和动态之间的差异将是微不足道的。相信我。
快乐的编码,朋友。
答案 1 :(得分:2)
答案 2 :(得分:2)
django-medusa基本上没有维护。这些是项目自述文件中提到的一些替代方案:
- django-bakery,在Los Angeles Times Data Desk建立并维护了可爱的人。 (了解它 here。)
- The alsoicode/django-medusa fork,Brandon Taylor。除其他外,它一直都是 为更新版本的Django保持最新。
- django-freeze Fabio Caccamo。
- django-staticgen Mishbah Razzaque。
答案 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提供商套件。像这样的网站应该很容易在其中一个平台上运行,而且每月应该很便宜。
您可能想要结帐的某些提供商包括: