python - 每次 API 收到请求时执行 python 脚本
问题描述
这是我的简单休息 api
我从脚本中获取jira
变量get_jira
这是另一个 python 脚本,它向 jira rest api 发送 POST 请求以获取新的 jira ID
它工作正常,但只有一次。当我启动我的应用程序并向其发送 GET 请求时,它会为我提供新的 jira ID,比如说ABC-01
. 问题是当我发送另一个 GET 请求以获取下一个 jira ID 时,它又给了ABC-01
我
看起来get_jira
只执行一次,无论我发送多少 GET 请求。唯一的方法是重新启动应用程序
jira
每次我向我的 api 发送 GET 请求时,有什么方法可以获取新的 jira ID ( )?
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 的函数,该函数在每次运行时都会返回一个新的 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)
推荐阅读
- javascript - 我们如何使用 Puppeteer 编写脚本/自动化 Electron 应用程序?
- angular6 - 带有角度 6 的 Dialogflow 我应该使用 api-ai-javascript 还是基本 url?
- ios - 如何在 iPhone X 上将 ARSCNView 适配到 SafeArea?
- c# - 如何拥有列表视图行的所有元素?
- asp.net - asp.net MVC Web API - 记录发送给用户的新承载令牌
- python - 使用 Python 请求在提示中单击 OK 按钮
- c# - 将 JSON 结构动态转换为数组
- android - 将哈希图存储在数组中,反之亦然
- tensorflow - 多个 Inception V3 训练模型的 GPU 问题
- jquery - 引导表中的动态字符串