【问题标题】:Django Models - How to save the result of a function in the databaseDjango 模型 - 如何将函数的结果保存在数据库中
【发布时间】:2015-10-28 17:11:46
【问题描述】:

我的 django 网页有一点速度问题。 我正在制作一个挑选亚马逊文章价格的网站。我的问题是我使用 lxml 来抓取 html 数据,并且每次我重新加载页面时都会重复该功能,并且包含 6 篇文章的页面需要大约 15 秒才能加载。这是我的功能:

def price(self):
    if self.amazon_url:
        url = self.amazon_url
        source_code = requests.get(url)
        code = html.fromstring(source_code.text)
        prices = code.xpath('//span[@id="priceblock_ourprice"]/text()')
        eur = prices[0].replace("EUR ", "")
        nospace = eur.replace(" ", "")
        nodown = nospace.replace("\n", "")
        end = nodown.replace(",", ".")
        return float(end)
    else:
        return 0

好的,现在,这个函数在我的 django 模型类中,也是我认为使页面加载如此缓慢的原因。问题是:一旦我抓取了价格,我可以将它存储在我的 sql 数据库中,这样我每次重新加载页面时都不必使用这个函数吗? 我打算在我的数据库中添加模式产品,所以我想对每个产品只使用一次此功能,然后将价格存储在我的数据库中。 希望你能帮助我,我对python不太好,所以请试着用简单的话来解释一下,谢谢

【问题讨论】:

  • 在您的模型上放置一个价格字段并保存您爬入其中的价格,您还可以添加一个日期时间字段来存储价格保存的时间。您每天只能抓取一次价格。
  • 问题是我不知道该怎么做

标签: python django database function django-models


【解决方案1】:

经过多次测试,我决定使用 AmazonProductAPI,它似乎工作正常

【讨论】:

    猜你喜欢
    • 2017-12-27
    • 2016-10-30
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 2016-07-07
    • 2017-10-11
    • 2013-06-11
    • 2016-06-13
    相关资源
    最近更新 更多