![](/img/trans.png)
[英]Azure function written in Python in VS Code works fine on local test but doesn't work on Azure environment
[英]python code doesn't work when I segregate into packages | works fine in same file
我正在嘗試構建一些寧靜的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})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.