Flask在处理另一个需要长时间加载的fx时返回html页面

时间:2018-11-19 18:29:55

标签: python selenium flask screenshot background-task

我正在使用Flask开发Flask Web应用程序。它接受URL,因为输入会在各种项目上进行一些计算,然后截取该页面的屏幕截图,但是,屏幕截图部分至少需要5到7秒的时间,这实际上取决于他们的网站何时完全加载。

我不能全神贯注于如何使用计算加载页面,而是将屏幕截图部分保留下来,直到加载了带有计算的新页面之后;可能仅在显示图像的区域显示加载的gif。 我考虑过只使用计算来渲染模板,然后通过ajax加载页面,提交图像的FX,通过jquery运行一个加载gif来代替图像,然后每隔x秒通过jquery刷新页面直到完成,但是似乎不好的做法是,任何输入/评论都将受到赞赏。

@app.route('/', methods=['GET', 'POST'])
def index():
    # bunch of calcs happen first
    imgofsite = ''
    driver.set_window_size(width=800, height=600)
    driver.get(site)  # whatever reachable url
    timeout = time.sleep(5)
    if not error:
        name_it = str(site)
        apng, seppng, namepng = name_it.partition('//www.')
        time.sleep(2)
        if os.path.isfile(namepng.lower().replace('/', '-') + '.png'):
            pass
        else:
            driver.save_screenshot('./static/' + name.lower().replace('/', '-') + '.png')

            imgofsite = namepng.lower().replace('/', '-') + '.png'

0 个答案:

没有答案