Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django模型-如何在数据库中保存函数的结果_Python_Django_Database_Function_Django Models - Fatal编程技术网

Python Django模型-如何在数据库中保存函数的结果

Python Django模型-如何在数据库中保存函数的结果,python,django,database,function,django-models,Python,Django,Database,Function,Django Models,我的django网页有点速度问题。 我正在制作一个网站,挑选亚马逊文章的价格。我的问题是,我使用lxml对html数据进行爬网,每次重新加载页面时,该函数都会重复,加载一个包含6篇文章的页面需要15秒。这是我的职责: def price(self): if self.amazon_url: url = self.amazon_url source_code = requests.get(url) code = html.fromstring

我的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数据库中,这样我就不必每次重新加载页面时都使用此函数? 我计划在我的数据库中添加mode产品,因此我只想对每个产品使用此功能一次,然后将价格存储在我的数据库中。
希望你能帮助我,我对python不太在行,所以请试着用简单的话解释一下谢谢

经过多次测试后,我决定使用AmazonProductAPI,它似乎工作得很好

在您的模型上放置一个价格字段并保存爬网的价格,您还可以添加一个DateTime字段来存储保存价格的时间。你可以一天只爬网一次左右的价格。问题是我不知道怎么做