每次 API 收到请求时执行 python 脚本

execute python script everytime the API gets request

这是我简单的休息api

我正在从 get_jira 脚本中获取 jira 变量

这是另一个 python 脚本,它向 jira rest api 发送 POST 请求以获取新的 jira ID

它工作正常但只有一次。当我启动我的应用程序并向它发送 GET 请求时,它会给我新的 jira ID,比方说 ABC-01。问题是当我发送另一个 GET 请求以获取下一个 jira ID 时,它再次给我 ABC-01

看起来 get_jira 只执行了一次,无论我将发送多少 GET 请求。唯一的方法是重新启动应用程序

每次我向 api 发送 GET 请求时,有什么方法可以获取新的 jira ID (jira)?

from flask_restful import Resource, Api, request
import fileinput

app = Flask(__name__)
api = Api(app)

class Get(Resource):
        def get(self):

                ### ACCEPTED PARAMETERS
                source = request.get_json(force=True)['source']
                desc = request.get_json(force=True)['desc']

                ###
                .
                .
                ###

           ---> from get_jira import jira

                return jsonify({"desc":desc},{"source": source},{"jira": jira})

api.add_resource(Get, '/api/v1.0')

if __name__ == '__main__':
        app.run(port=5000,debug=True,use_reloader=True)

导入应该在你的文件的顶部完成,原因有几个我不会在这里讨论,但我认为你最好研究一下 python 中的导入是如何工作的。

根据我对你的代码的理解,它可以重新格式化如下。请注意,这假设您有一个名为 get_jira.py 的文件,其中包含一个名为 generate_jira 的函数,每次 运行.

时 returns 一个新的 jira 名称
from flask_restful import Resource, Api, request
from get_jira import generate_jira
import fileinput

app = Flask(__name__)
api = Api(app)

class Get(Resource):
    def get(self):

            ### ACCEPTED PARAMETERS
            source = request.get_json(force=True)['source']
            desc = request.get_json(force=True)['desc']
            jira = generate_jira()

            return jsonify({"desc":desc},{"source": source},{"jira": jira})

api.add_resource(Get, '/api/v1.0')

if __name__ == '__main__':
    app.run(port=5000,debug=True,use_reloader=True)