因此,我正在设计一个基于用户输入的Django网站,它进行了大量的抓取。这可能需要5-6秒,而当我正在削减,我想要某种加载程序出现,而后端是刮擦。
我像通常使用CSS和JavaScript一样在模板中放置了一个加载器,但是只有当模板实际加载时才弹出,而不是当视图正在为模板收集数据时才弹出。
在Django尝试过:
def scrape(request):
render(request,'loader.html')
*do scraping*
return render(request,'results.html',scraped_data)发布于 2020-05-22 19:34:45
我用来解决这个问题的方法是在solve视图中触发一个异步函数。
@shared_task
def do_the_needful():
return "hello I am doing the needful"
def scrape_result(request, scrape_id):
result = AsyncResult(scrape_id).get()
# convert result to json or some other web format
return result_as_json
def scrape(request):
scrape_request_id = do_the_needful.submit()
return render(request, "scrape.html", context={"scrape_request_id": scrape_request_id}然后,在HTML中,您需要创建一些Javascript,它将使用上下文中的scrape_request_id对scrape_result视图执行Ajax请求。
https://stackoverflow.com/questions/61961268
复制相似问题