我在一个类中打包了一些def,以使用Bing或Google翻译API将文本翻译成另一种语言。并使用Flask渲染模板,如您所知。
但是,翻译时,我有一些状态和进度信息,例如翻译段落时完成的10%等。但是您所想象的在翻译类中生成的信息-该类完成翻译工作。
但是,在我的Flask应用程序中,调用该类后,我希望从网页到Flask App进行ajax调用,以检索该类生成的10%的信息。
这是我所做的:
如果我不使用任何类,请将所有defs放入主Flask App文件中,则可以使用存储10%信息的全局变量,但这会使代码变得复杂,我想打包所有相关的定义在一个类中。
在Flask应用程序中,我试图使用session ['translation_pos']检索我在课程中的session ['translation_pos']中存储的信息,但似乎不起作用。
我使用python 3和Flask,我不知道如何从类(生成数据的位置)到应用程序获取进度百分比信息。
可能是将数字存储在文本文件或某些位置,然后在App中读取文件的一种方式,但我当时想当然不应该使用这种方式来处理此问题。
任何人都可以提出一些建议,这将不胜感激。
谢谢大家。
答案 0 :(得分:0)
您可能想用另一种方法来运行任务,使用Celery或Redis Queue之类的东西-很好地覆盖here in the mega tutorial。
通过使用其中之一,您可以运行任务并定期查询运行程序以获取进度,并将其报告给用户。
如果是我,为了进行数据处理,我会将其存储在数据库中。任务完成后,将重新查询该任务并将其作为模板变量传递给UI(或者,如果它是大型数据集,则从ajax函数流式传输)。