每当API获得请求时执行python脚本

时间:2019-01-16 22:40:08

标签: python flask flask-restful

这是我简单的rest api

我从jira脚本中获取了get_jira变量

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

它工作正常,但只有一次。当我启动应用程序并向其发送GET请求时,它为我提供了新的jira ID,例如ABC-01。问题是,当我发送另一个GET请求以获取下一个jira ID时,它又给了我ABC-01

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

每当我向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)

1 个答案:

答案 0 :(得分:1)

出于某些我不想在这里介绍的原因,应该在文件的顶部进行导入,但是我认为您可以对python的导入方式进行一些研究。

据我对您的代码的了解,可以将其重新格式化如下。请注意,这假设您有一个名为get_jira.py的文件,其中包含一个名为generate_jira的函数,该函数在每次运行时都会返回一个新的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)