【问题标题】:django: can we do loader.get_template('my_template.txt')?django:我们可以做 loader.get_template('my_template.txt') 吗?
【发布时间】:2010-09-29 00:16:08
【问题描述】:

我想用django模板处理纯文本文件,试过了:

from django.template import loader, Context
t = loader.get_template('my_template.txt')

但是,它适用于此:

from django.template import loader, Context
t = loader.get_template('my_template.html')

我们可以使用 django 模板加载器加载 txt 文件吗?怎么样?

谢谢。

【问题讨论】:

  • 不禁要问一个显而易见的问题:my_template.txt 存在吗? Django 的模板引擎不关心你使用的是文本、html、xml 还是其他任何东西,只要它是一个文本文件。
  • 是的。确实如此。我把两者放在同一个目录中。
  • 你确定吗?它必须在设置中定义的 TEMPLATE_DIRS 目录中。这是我唯一能想到的,否则它应该能够打开任何文本文件。尝试将您的 html 文件复制到 .txt,如果您正在使用的 .txt 是奇怪创建的,那么它可能不是正确的 mimetype

标签: python django django-templates


【解决方案1】:

正如@Seth 评论的那样,我看不出有任何理由不应该这样做。 Django 不关心文件的扩展名。你可以很好地加载my_template.foo

检查以下内容:

  1. 该文件确实存在于它应该存在的位置。如果它位于子目录中,则必须使用loader.get_template('<subdirectory>/my_template.txt'),其中 subdirectory 是目录的名称。

  2. 检查您是否有应用名称。通常在具有应用程序名称的目录中找到应用程序的所有模板。

  3. 正如@Seth 所说,仔细检查您的TEMPLATE_DIRS 设置。模板应位于此列表中的目录之一内。

【讨论】:

    【解决方案2】:

    我会把这个留给其他人来回答,因为我对 Django 不太满意。

    但是,如果您对模板和纯文本处理感兴趣,为什么不看看 python 中提供的大量其他产品。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-27
      • 1970-01-01
      • 2020-06-07
      • 2017-02-09
      • 1970-01-01
      • 1970-01-01
      • 2023-02-18
      相关资源
      最近更新 更多