我的目标是将数据从一个python文件main.py
获取到另一个python文件tut.py
。main.py
就像一个api,它将数据发送到tut.py
中的路由。我将感谢任何帮助或其他可能的方式。谢谢
main.py
from flask import Flask
from flask_restful import Api, Resource
app = Flask(__name__)
api = Api(app)
class Datas(Resource):
def get(self):
return {"SignedMessage":"Men"}
api.add_resource(Datas, "/api")
if __name__ == "__main__":
app.run(debug=True)
tut.py
from flask import Flask, jsonify, request
import requests
from flask_restful import Api, Resource
app = Flask(__name__)
BASE = "http://10.100.17.179:5000/" # my localhost
#route to get the data from main.py
@app.route("/api12", methods = ['GET'])
def home():
response = requests.get(BASE + "api")
print(response)
return response.json()
if __name__ == "__main__":
app.run(debug=True)
您编写的代码是正确的。main.py和tut.py。然而,问题是,你不能让这两个应用程序在本地服务器上同时运行。因此,当您从tut.py调用main.py中的API时,main.py没有运行。您可以通过将这两个代码都包含在一个文件中(比如main.py(并运行它来检查这一点。供您参考的代码:
from flask import Flask, jsonify, request
import requests
from flask_restful import Api, Resource
app = Flask(__name__)
BASE = "http://10.100.17.179:5000/" # my localhost
api = Api(app)
class Datas(Resource):
def get(self):
return {"SignedMessage":"Men"}
api.add_resource(Datas, "/api")
#route to get the data from main.py
@app.route("/api12", methods = ['GET'])
def home():
response = requests.get(BASE + "api")
print(response)
return response.json()
if __name__ == "__main__":
app.run(debug=True)
现在,当您调用api12时,它将调用api。但两者都必须在一个文件中。或者,你必须让另一个托管。要运行一个完整的烧瓶应用程序,您应该阅读以下文档:https://flask.palletsprojects.com/en/2.0.x/blueprints/
将数据从一个文件获取到另一个文件的另一种方法是导入。在你的情况下,这就是它的工作方式:
main.py
def functionx():
result = {"SignedMessage": "Men"}
return result
在tut.py中:
from flask import Flask, jsonify, request
import requests
from flask_restful import Api, Resource
from main import functionx
app = Flask(__name__)
BASE = "http://10.100.17.179:5000/" # my localhost
#route to get the data from main.py
@app.route("/api12", methods = ['GET'])
def home():
response = functionx()
return response.json()
if __name__ == "__main__":
app.run(debug=True)