2 回答

TA貢獻1795條經驗 獲得超7個贊
希望這可以幫助那些有同樣錯誤但沒有找到解決方案的人
要完成@v25給出的答案,您必須通過從 flask_restplus 中的 Ressource 類繼承來為您的命名空間提供資源。
以下示例對我有用
環境:
Ubuntu 18.04
蟒蛇 3.7.1
蟒蛇要求:
燒瓶==1.1.2
flask-restplus==0.13.0
工具==0.16.1
源代碼:iot.py
from flask_restplus import Namespace,Resource
api_ns = Namespace("iot", description="API.")
@api_ns.route("/tcpserver")
class AdvertiseTcpserver(Resource):
def get(self):
#TODO return the correct ip value
return {"tcpserver": "ip"}
app.py
from .iot import api_ns
from flask import Flask
from flask_restplus import Api
app = Flask(__name__)
_api = Api(app, catch_all_404s=True, version=0.1,
title="REST HTTP API's Gateway",
descrition="REST API gateway")
_api.add_namespace(api_ns, path='/some/prefix')
app.run()
測試命令:
#!/bin/sh
wget localhost:5000/some/prefix/tcpserver
如果這有幫助,請告訴我。

TA貢獻1821條經驗 獲得超6個贊
不要認為這是用flask_restplus
. 查看縮放文檔。
您可能正在尋找類似的東西:
iot.py
from flask_restplus import Namespace
api_ns = Namespace("iot", description="API.")
@api_ns.route("/tcpserver", methods=["GET"])
def advertise_tcpserver():
ip = reader.get_server_ip()
return jsonify({"tcpserver": ip})
然后在你的主app.py中:
# other imports
from .iot import api_ns
app = Flask(__name__)
_api = Api(app, catch_all_404s=True, version=0.1,
title="REST HTTP API's Gateway",
descrition="REST API gateway")
_api.add_namespace(api_ns, path='/some/prefix')
此外,您似乎正在使用已停產的 Python 2.7。我建議使用虛擬環境或 docker 升級到最新版本,以免弄亂系統的 python。
添加回答
舉報