使用Flask

时间:2016-12-22 12:59:31

标签: python google-maps flask static plotly

我有一个烧瓶应用程序,可以绘制一些HTML图表和谷歌地图。

每次刷新浏览器时,它都会运行我的index()方法,这是我views.py中唯一的方法。此方法从一组文件中收集数据,并计算图形,Google Map等。

这是非常沉重的负载我想知道是否有某种方式我可以运行此方法每当我python run.py而不是在我加载索引页时计算所有内容?我想保存索引方法的内容并在加载页面时立即显示,因此刷新页面时不会加载所有内容。

这是否可行?

Views.py

@app.route('/')
@app.route('/index')
def index():

    """Read from .json files. Generate a buttload of graphs, and data to return to index.html"""

    return render_template('index.html',
                       trips=trips,
                       ids=ids,
                       graphJSON=graphJSON,
                       markerList=markerList,
                       routeCoordinates=routeCoordinates,
                       center=center)

上面的内容使得每当有人刷新不是我的意图的页面时,所有数据都会运行,绘图等等。我只想在运行“主文件”(run.py)时运行这些函数,然后在索引页面上可视化数据。

1 个答案:

答案 0 :(得分:1)

您可以在__init__.py文件中执行大量加载,并将值存储在变量中。然后只需将其导入views.py

例如:

__init__.py

def some_heavy_loading():
    ...
    return values

VALUES = some_heavy_loading()

views.py

import VALUES
...
    def index():
    ...
    return render_template('index.html',
                   values=VALUES)