当我隔离到包中时,Python 代码不起作用 |在同一文件中工作正常



我正在尝试构建一些休息的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)

当我将该服务放在不同的包中时,该应用程序似乎不可见。请指教。

假设您遇到的问题是 flask 看不到您的服务,一旦您拆分代码,看起来没有任何内容在导入您的服务代码。

只需将 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})

最新更新