如何在 Django 模板中发出外部网站的 HTML?

joh*_*nny 0 python django urllib django-cms

我想在外部站点上获取我的其中一个页面的内容、HTML 和所有内容。如果在 .NET 中,我可以使用 WebClient 并检索页面,将其保存到一个变量中,然后在 Razor 中发出它。PHP 可以使用 cURL。

我怎样才能在 Django 模板中做到这一点?我需要创建一个使用 urllib 的插件吗?

如果重要的话,我正在使用 DjangoCMS。我搜索并尝试了 Django http 模块。

我查看了 http 的 helper Django 模块,但没有看到任何内容。我不确定该放在哪里urllibrequests,因为我不知道我要做什么需要我构建插件或自定义模板标签。

我希望知道如何使用 Python 和 Django 的模板语言或仅使用模板语言来做到这一点,所以我真的不想在 JavaScript、iframe、对象等中做到这一点。

Das*_*son 5

您可以使用 reqeusts 库,并将函数定义为视图的一部分。

或者,如果您希望它可全局访问,您可以定义一个简单的标签。

例如

import requests
from django import template

register = template.Library()

@register.simple_tag
def get_site_source(url):
    res = requests.get(url)
    return res.text
Run Code Online (Sandbox Code Playgroud)

并在模板中:

...
{% get_site_source url %}
...
Run Code Online (Sandbox Code Playgroud)