Django可以轻松地用数据库中模型的数据填充HTML模板-但最近我遇到了几种情况,我想用其他文件的数据填充模板。 br /> 在这种情况下,我试图为项目生成自己的文档。最初,我只是将所有内容写到一个大文件中,但这显然很麻烦,而且很重复。相反,我会很整洁地拥有某种文件系统,其中每个文件夹是文档中的一个部分,每个子文件夹是一个子部分,依此类推。
Django可以这样做吗?
我知道实现此目的的一种方法是将文件链接到数据库对象,然后遍历模板中的这些对象。我并不热衷于此,因为我希望任何更改/新文档文件立即显示在页面中,而不必在数据库中进行编辑。
我唯一想到的另一种方法是浏览文件夹,在加载页面时将其内容添加到页面上下文中。对我来说,这似乎太过分了,我想象会在文件内容中使用编码的HTML产生问题。
这就是说:如果有一种优雅的方式来做这两种事情,或者完全不同的方法,那我真是耳目一新。
干杯
顺便说一句,我没有为此使用任何markdown语法-仅用于文档页面的纯HTML。
答案 0 :(得分:0)
视图不必从数据库返回对象。它可以返回任何Python数据结构,无论它们来自何处:
def my_view(request):
context = {}
with open('foo.txt', 'r') as f:
lines = []
for line in f:
# do some file processing or something
lines.append(line)
context['foobar'] = lines
return TemplateResponse(request, 'my_template.html', context)
模板上下文将包含foo.txt
中的行的列表,您可以像遍历其他Python对象一样对其进行迭代。