如何在 Django 模板中发出外部网站的 HTML?
Posted
技术标签:
【中文标题】如何在 Django 模板中发出外部网站的 HTML?【英文标题】:How do I emit the HTML of an external website in a Django template? 【发布时间】:2018-06-15 15:13:32 【问题描述】:我想在外部站点上获取我的一个页面的内容、html 和所有内容。如果在 .NET 中,我可以使用 WebClient 并检索页面,将其保存到变量中,然后在 Razor 中发出。 php 可以使用 cURL。
如何在 Django 模板中做到这一点?我需要创建一个使用 urllib 的插件吗?
如果重要的话,我正在使用 DjangoCMS。我搜索并尝试了 Django http 模块。
我查看了 http 的帮助程序 Django 模块,但什么也没看到。我不确定将urllib
或requests
放在哪里,因为我不知道我要做的事情是否需要我构建插件或自定义模板标签。
我希望知道如何使用 Python 和 Django 的模板语言或仅使用模板语言来做到这一点,所以我真的不想在 javascript、iframe、对象等中做到这一点。
【问题讨论】:
对于初学者,您可以使用 requests 模块在您的 views.py 中编写一个函数,只需几行代码。 @Stack 这是否意味着我需要构建一个插件? 检查这个答案***.com/a/8201281/8150371,它使用的是urllib而不是请求 【参考方案1】:您可以使用 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
在模板中:
...
% get_site_source url %
...
【讨论】:
以上是关于如何在 Django 模板中发出外部网站的 HTML?的主要内容,如果未能解决你的问题,请参考以下文章