gpt4 book ai didi

python - 在 flask 中,如何在特定的可插入 View 上执行 before_filter?

转载 作者:太空宇宙 更新时间:2023-11-03 15:21:30 25 4
gpt4 key购买 nike

我有一个 Flask 应用程序,它被布局为几个 MethodView

在我的一个 MethodViews 上,我想在每个请求之前打开一个数据库连接,并在请求之后关闭它,非常类似于 this .

我知道如何使用全局 @app.before_request@app.teardown_request 函数,但它们会针对每个请求运行。我想要只针对特定 MethodView 中的路由运行的有限版本。

最佳答案

如果您正在创建一个 MethodView 子类,最简单的方法是添加一个函数,当任何适当的方法是:

class AutoConnectingView(MethodView):
def setup(self):
# Connect to the database here and store the connection on self.
self.db = connect_to_db()

def teardown(self):
self.db.close()

def dispatch_request(self, *args, **kwargs):
self.setup()
response = super(AutoConnectingView, self).dispatch_request(*args, **kwargs)
self.teardown()
return response


class ARoomWithAView(AutoConnectingView):
def get(self):
rooms = self.db.execute("SELECT * FROM RoomsWithViews")
return render_template("rooms.html", rooms=rooms)

关于python - 在 flask 中,如何在特定的可插入 View 上执行 before_filter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14107066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com