如何访问命名空间类中的“api”实例

时间:2021-04-11 17:32:05

标签: python flask-restplus

我按照指南 https://flask-restplus.readthedocs.io/en/stable/scaling.html

我在每个命名空间类中定义了命名空间,并且在 init.py 中定义了“api”。

init.py

from flask_restplus import Api
from .AA import nsAA
api = Api()
api.add_namespace(nsAA)

在 AA.py(即命名空间)中

from flask_restplus import Resource, Namespace, marshal_with, fields
nsAA = Namespace('')
@nsAA.route('/login')
class AA(Resource):
    login_fields = api.model('Resource', {
    'username': fields.String,
    'password': fields.String,
})
    @api.expect(login_fields)
    def post(self):

我遇到错误:

AttributeError: 'AA' object has no attribute 'api'

我了解此错误,因为命名空间中没有“api”实例。

但是如何将其传递给命名空间?

1 个答案:

答案 0 :(得分:0)

你应该把你的命名空间当作 Flask 的蓝图。例如,你可以这样做:

from flask_restplus import Resource, Namespace, marshal_with, fields

 login_fields = api.model('Resource', {
    'username': fields.String,
    'password': fields.String,
})

nsAA = Namespace('')

@nsAA.route('/login')
@nsAA.expect(login_fields)
class AA(Resource):
    def post(self):