Python 刚刚学会了刮取数据并将其存储在我的数据库中,但它只刮取一个对象

Python 刚刚学会了刮取数据并将其存储在我的数据库中,但它只刮取一个对象,python,django,heroku,web-scraping,Python,Django,Heroku,Web Scraping,首先,我是一个新手,我对python和Django还不熟悉,最近我刚刚尝试过抓取数据并将其存储在数据库中。我已经让它工作了。它只会刮取一个对象并存储它。不是多个对象。现在我正在本地开发,并试图解决这个问题。我的观点是这样的 def practice(request): world = get_world_too() for entry in world: post = Post() post.title = entry['text']

首先,我是一个新手,我对python和Django还不熟悉,最近我刚刚尝试过抓取数据并将其存储在数据库中。我已经让它工作了。它只会刮取一个对象并存储它。不是多个对象。现在我正在本地开发,并试图解决这个问题。我的观点是这样的

def practice(request):
    world = get_world_too()

    for entry in world:
        post = Post()
        post.title = entry['text']
        post.image_url = entry['src']
        post.save()

        template = "blog/post/noindex.html"
        context = {
        }
        return render(request, template, context)
这就是函数

        def get_world_too():
        url = 'http://www.example.org'
        html = requests.get(url, headers=headers)
        soup = BeautifulSoup(html.text, 'html5lib')

        titles = soup.find_all('section', 'box')[:9]
        entries = [{'href': url + box.a.get('href'),
                    'src': box.img.get('src'),
                    'text': box.strong.a.text,
                    } for box in titles]
        return entries
如果我刷新页面,它只会刮取和存储多个对象。但是我的函数被设置为9,所以我想这至少会有9个对象存储在我的数据库中。在视图中,我有一个循环

for entry in world:
        post = Post()
        post.title = entry['text']
        post.image_url = entry['src']
        post.save()

那么循环不应该得到所有九个对象吗?我也不知道,这不是专业的方法。正如我所说,我只是在练习。最终,我想将其设置为一个heroku cron作业,在一天中运行几次。但就目前而言,我如何让它在一次拍摄中刮取多个对象,并将其保存到我的数据库中

由于这条线,它只经过一次循环:

返回呈现(请求、模板、上下文)

return
在函数第一次运行时(在第一个循环中)返回整个函数。如果要遍历每个循环,然后返回,请将
return
移出循环,如下所示:

def practice(request):
    world = get_world_too()

    for entry in world:
        post = Post()
        post.title = entry['text']
        post.image_url = entry['src']
        post.save()

        template = "blog/post/noindex.html"
        context = {}

    # not in the loop anymore
    return render(request, template, context)

这个建议解决了这个问题。这个错误使我认为应该在函数中包含循环。我可能会抓住那个凹痕,它会更干净。谢谢