带蓝图和名称空间的flask-restplus嵌套名称空间

时间:2018-11-19 04:09:02

标签: flask flask-restplus

我用flask-restplus制作了api服务器。

在使用它时,我注意到它可能必须进行版本控制以扩大规模。

因此参考文档,我发现命名空间和蓝图是可用的。

首先,像这样的文件结构。

/app
  - /main
    - __init__.py
    - /controller
      - /v1/
        - article_controller.py
  - __init__.py

[/ main / v1 / __ init __。py]

from flask_restplus import Namespace, Api
from flask import Blueprint

from .article_controller import api as article_ns


blueprint = Blueprint('api', __name__)

api = Api(blueprint,
          title='Appeal API',
          version='1.0',
          description='Appeal API',
          )

api.add_namespace(article_ns, path='/articles')

我导入article_controller.py并通过add_namespace()添加。

[/ main / __ init __。py]

from flask_restplus import Api
from flask import Blueprint

from app.main.controller.v1 import api as api_v1


blueprint = Blueprint('api', __name__)

api = Api(blueprint,
          title='Appeal API v1',
          version='1.0',
          description='Appeal API v1',
          #   prefix='/api'
          )

# Version1
api.add_namespace(api_v1, path='/v1/')

导入v1并将其添加到名称空间。

但是当我访问/v1/articles时,发生了Not found错误。

我找不到错误的代码。

这里有解决方案吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

您在哪里创建了烧瓶应用程序?

在您的应用程序(项目的根目录)中,您应该有类似

的内容
  

app.py

在那里定义烧瓶应用程序并在其中注册蓝图

喜欢...

from flask import Flask
from main import blueprint as api1

app = Flask(__name__)
app.register_blueprint(api1)
app.run(debug=True)

look at this example in docs