Python Flask:后台会发生什么,如何只调用一次函数?

2024-06-17 13:15:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经用了很长时间,但显然是盲目的。我正在运行的应用程序托管在appengine中,运行正常。今天我遇到了一个让我思考烧瓶和应用程序引擎是如何工作的情况。下面是我的应用程序的结构:
app.py

from flask import Flask

app = Flask(__name__)

@app.route('/', method=['GET', 'POST'])
def f1():
.
.
.
def f2():
.
.
.
if __name__=='__main__':
    app.run(debug=True)

应用程序中有许多部分与我的问题无关。我知道只要有GET/POST请求,就会调用f1()。那么,当我在app-in-app引擎中部署app时,后台到底发生了什么?假设我只想调用一次f2(),从API中检索一些数据并在f1()中使用这些数据。我可以在main()中调用它并将其保存到全局变量中吗?或者我该怎么做?我正在尝试优化数据库和API调用,以使应用程序更快,这就是只调用一次f2()的原因。
请澄清或参考相关资源以解决我的问题


Tags: 数据name引擎apiapp应用程序flaskget
1条回答
网友
1楼 · 发布于 2024-06-17 13:15:41
@app.route('/', method=['GET', 'POST'])
def f1():

您的函数有一个decorator @app.route。这将绑定函数f1。你可以在你的函数中有n个装饰器。如果要调用f2函数,可以在脚本末尾调用,并将其用作全局变量

a = ''

@app.route('/', method=['GET', 'POST'])
def f1():
    global a
.
.
.
def f2():
   global a
.
.
.

f2()

if __name__=='__main__':
    app.run(debug=True)

我的建议是在f2中添加一个decorator,以便将来需要更改全局数据时可以再次调用该函数

@app.route('/some_secret_address', method=['GET', 'POST'])
def f2():
    global a

相关问题 更多 >