获取Django模板的源代码

时间:2014-03-07 17:32:08

标签: python django django-templates

我需要获取模板的来源。我查看the template APIs并进入source code但没有成功。

显然,模板对象keeps no reference到原始源。

在弄乱我的代码库之前,我问:是否有一种简单的方法来获取模板的来源?

4 个答案:

答案 0 :(得分:3)

Template个对象不保留对原始源的引用,但是保留对原始源文件的引用,您可以重新启动 - 从那里读取来源:

source = open(template_instance.origin.name, 'r').read()

答案 1 :(得分:1)

如果你确切知道加载模板的加载模板,你可以直接使用Loader方法。

from django.template.loaders.app_directories import Loader
source = Loader.load_template_source(file_name)[0]

file_name与使用loader.get_template(file_name)

加载模板时相同

答案 2 :(得分:0)

有一个很棒的快捷方式叫render_to_string

正如de docs所说:

  

它加载一个模板,渲染它并返回结果字符串:

from django.template.loader import render_to_string rendered = render_to_string('my_template.html', {'foo': 'bar'})

因此,渲染的变量是一个包含模板源代码的字符串

答案 3 :(得分:-2)

模板是文本文件(通常是HTML,但不一定),在通过调用(例如django.shortcuts.render)调用时通常使用上下文呈现。如果你有一个视图功能,那应该指定它正在使用的模板。

来自文档:

from django.shortcuts import render

def my_view(request):
    # View code here...
    return render(request, 'myapp/index.html', {"foo": "bar"},
        content_type="application/xhtml+xml")

此处,模板将是“templates / myapp / index.html”