Python 在不同路由中重用sql查询

Python 在不同路由中重用sql查询,python,sql,bottle,Python,Sql,Bottle,我是python的新手。使用瓶子框架,我有两条路线,如下所示 @app.route("/foo/:slug") def foo(slug): # execute heavy sql query here sql = "..." @app.route("/bar/:slug") def bar(slug): # again execute the heavy sql query ... sql = "..." 正如您在上面的路由中所看到的,我冗余地执行同一个查

我是python的新手。使用瓶子框架,我有两条路线,如下所示

@app.route("/foo/:slug")
def foo(slug):
    # execute heavy sql query here
    sql = "..."


@app.route("/bar/:slug")
def bar(slug):
    # again execute the heavy sql query ...
    sql = "..."
正如您在上面的路由中所看到的,我冗余地执行同一个查询,但这在我看来很难看,有没有办法执行这样一个查询一次,然后在另一个路由中重用它


注意:不使用
全局
变量的答案将不胜感激。

您可以将其包装在模型对象中,例如:

import models    

@app.route("/foo/:slug")
def foo(slug):
    data = models.heavy_data()


@app.route("/bar/:slug")
def bar(slug):
    data = models.heavy_data()

并且模型可以使用

写助手函数缓存数据。多次调用助手函数不会多次执行查询?这取决于助手函数。它可以缓存查询结果,并为第二次调用返回缓存结果。