我正在尝试构建一些宁静的API。当我尝试将代码分离到包中时,服务不起作用,我在服务器上找不到URL。举些例子:
场景1 [工作正常,因为我在main.py中拥有所有内容]
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/echo', methods=['POST'])
def echo():
message = request.get_json().get('message', '')
return jsonify({'message': message})
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080, debug=True)
现在,当我尝试将代码分离到不同的包中时,它只是不起作用。例如:
场景2 [不起作用,因为代码在不同的包中]
我正在api / restful.py初始化应用程序
from flask import Flask, jsonify, request
app = Flask(__name__)
然后在api / endpoints / service.py中创建了一个服务
from api.restplus import app, jsonify, request
@app.route('/echo', methods=['POST'])
def echo():
message = request.get_json().get('message', '')
return jsonify({'message': message})
最后在main.py中
from api.restplus import app
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080, debug=True)
当我把它放在不同的包中时,似乎该应用程序看不到该服务。请指教。
假设您遇到的问题是烧瓶没有看到您的服务,一旦您拆分代码,看起来没有任何东西正在导入您的服务代码。
只需修改您的main.py文件,看起来像这样修复它:
from api.restplus import app
import api.endpoints.service
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080, debug=True)
希望这可以帮助 !
您可能想要这样做或者我建议,如果有更少的路由尝试在一个文件中进行翻转。
from yourfile import app
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080, debug=True)
在yourfile.py中
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/echo', methods=['POST'])
def echo():
message = request.get_json().get('message', '')
return jsonify({'message': message})