【问题标题】:how to find image url from another domain url for meta og:image in django templates如何在 django 模板中从另一个域 url 中查找 meta og:image 的图像 url
【发布时间】:2015-09-15 06:06:09
【问题描述】:

我们在 django 模板中查找另一个域的图像 url 时遇到了一些问题..
我们使用 django markdown,我的 models.py 像这样..

class Entry(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()
    author = models.CharField(max_length=150, null=True, blank=True)
    slug = models.SlugField(max_length=200, unique=True)
    keywords = models.CharField(max_length=200, null=True, blank=True)
    publish = models.BooleanField(default=True)
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)
    tags = models.ManyToManyField(Tag)

    objects = EntryQuerySet.as_manager()

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse("entry_detail", kwargs={"slug": self.slug})

    class Meta:
        verbose_name = "Blog Entry"
        verbose_name_plural = "Blog Entries"
        ordering = ["-created"]

我想,我可以从{{ object.body.imgUrl }} 找到图片网址。但我知道我们不反对获得.imgUrl

所以我的问题是,如何从object.body 找到图像 url,但如果我们使用来自另一个域的工作。

我们一直在寻找找到它的方法,但直到现在仍未找到.. 之前非常感谢..

编辑:
我在views.py中尝试使用这样的beautifulshoup@

from bs4 import BeautifulSoup
@property
def _getUrl_Image(url_post):
    soup = BeautifulSoup(url_post)
    result = []
    for post in soup.select('div.post'):
        all_links = soup.findAll('img', src=True)
        first = all_links[0]
        string = str(first)
        split = string.split('"')
        result.append(split[3])

    return result[0]({'result' : result})

在模板中。

{% for i in result %}
  {{ result }}
{% endfor %}

如何在模板中返回{{ result }},值为url_post

{% for i in result %}
  {{ result {% url "entry_detail" slug=object.slug %} }}
{% endfor %}

我知道会出错.. :(

编辑 2:

from bs4 import BeautifulSoup 
from django import template
register = template.Library()

@register.filter
def getUrlImage(url_post):
    soup = BeautifulSoup(url_post)
    result = []
    for post in soup.select('div.post'):
        all_links = soup.findAll('img', src=True)
        first = all_links[0]
        string = str(first)
        split = string.split('"')
        result.append(split[3])
    print result[0]
    return result[0]({'result' : result})

在模板中:

{% load getUrlImage %}
{% for i in result %}
  {% url "entry_detail" slug=object.slug as result_url %}
  {{ result }}{{ result_url }}
{% endfor %}

我们有一些错误Ups.. Error 500!
服务器无法加载我的功能还是为什么?

【问题讨论】:

  • 你没有解释,imgUrl 是什么意思。如果这是 Entry.body 文本中的链接,您可以使用 BeautifulSoap 找到您的 url
  • 好的,谢谢先生..也许我可以这样解决..stackoverflow.com/a/10127421/3445802
  • 先生,我再次遇到问题要添加我的函数以在模板中调用的字段..

标签: python django markdown meta


【解决方案1】:

我认为你的问题是缺少一些重要的细节,但也许以下内容会对你有所帮助:为你的最后一个 sn-p 写这个(即使我不知道你为什么使用 for 循环...... ):

{% for i in result %}
  {% url "entry_detail" slug=object.slug as result_url %}
  {{ result }}{{ result_url }}
{% endfor %}

【讨论】:

  • 我们尝试在我的函数中使用@register.filter,但如果我尝试重新加载我的页面,我们有一个error 500..
  • 我不明白你为什么要达到...你能说得更具体些吗?
  • 我想从标签 div.post 中获取图像 url 的第一个索引,然后再次调用 meta og:image 作为我的问题标题。因为我们现在使用markdown,在我的管理员帖子是这样的:imgur.com/sG0KvbW 来自另一个域的图像.. 我如何将它作为og:image 元标记放在我的模板中...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 2012-02-13
  • 1970-01-01
  • 1970-01-01
  • 2016-04-26
  • 2016-12-08
相关资源
最近更新 更多