【问题标题】:Loading template from an external URL in django从 django 中的外部 URL 加载模板
【发布时间】:2018-12-04 00:00:21
【问题描述】:

我有一个存储在 VPS 中的 HTML 模板。我想在 Django 中使用这个模板进行渲染,有没有办法做到这一点? 我知道将模板放在与 Django 相同的项目目录中会更好,但我只是想知道如何渲染不在我们的项目文件夹中并且我们知道它的 url 的模板。

谢谢

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    是的,你可以。例如,您可以使用 requests 库获取模板代码,然后构造模板:

    import requests
    from django.template import Template
    
    def some_view(request):
        import requests
        url = 'http://my.url.com/templates/some_template.html'
    
        response = requests.get(url)
        assert response.status_code == 200
    
        template = Template(response.content)
    
        context = {
            'some_element': 42,
        }
        return HttpResponse(template.render(context, request))

    所以我们这里首先获取模板数据,然后我们构造一个Template 对象,然后我们可以用给定的contextrequesttemplate.render(..) 它,例如将渲染的文本包装成一个HttpResponse.

    【讨论】:

    • 谢谢,willem 的回复,Django 有没有为这种情况提供一些方法,比如修改 Django 的模板加载器?
    • @ShahrukhMohammad:据我所知,没有。但是你可以将这个逻辑封装在一些实用函数中(从而定义你自己的快捷方式)。
    猜你喜欢
    • 2019-10-28
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    相关资源
    最近更新 更多