Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法向Flask Restplus注册蓝图_Python_Flask_Flask Restplus - Fatal编程技术网

Python 无法向Flask Restplus注册蓝图

Python 无法向Flask Restplus注册蓝图,python,flask,flask-restplus,Python,Flask,Flask Restplus,因此,当所有这些都放在一个文件中时,webapp与API一样工作,我可以看到文档。我希望将API分离到一个单独的文件中。但是,我得到一个错误: Traceback (most recent call last): File "main.py", line 8, in <module> app.register_blueprint(GetResource) File "/home/jj/mysite/lib/python3.6/site-packages/flask/a

因此,当所有这些都放在一个文件中时,webapp与API一样工作,我可以看到文档。我希望将API分离到一个单独的文件中。但是,我得到一个错误:

Traceback (most recent call last):
  File "main.py", line 8, in <module>
    app.register_blueprint(GetResource)
  File "/home/jj/mysite/lib/python3.6/site-packages/flask/app.py", line 66, in wrapper_func
    return f(self, *args, **kwargs)
  File "/home/jj/mysite/lib/python3.6/site-packages/flask/app.py", line 1102, in register_blueprint
    if blueprint.name in self.blueprints:
AttributeError: type object 'GetResource' has no attribute 'name'
下面是project/utils/api_methods.py:

from flask import request
from flask import Blueprint, jsonify, make_response
from flask_restplus import Resource, Api


blueprint = Blueprint('api', __name__, url_prefix='/api')
api = Api(
    blueprint, doc='/', version='1.0',
    title='Testing Blueprints',
    description="Try the API")
api.namespaces = []
ns = api.namespace('', description='test')
parser1 = api.parser()
parser1.add_argument(
    'Path',
    location='headers',
    help='Path to file or directory',
    required=True
)


@ns.route('/resources')
@api.route('/resources')
@api.doc(parser=parser1)
class GetResource(Resource):
    def get(self):
        ...
        return jsonify({'SUCCESS': 'endpoint accessed'})
您必须注册blueprint,而不是资源类,正如方法的名称
register\u blueprint
所暗示的那样

来自utils.api\u方法导入蓝图
...
应用程序。注册蓝图(蓝图)

您能分享完整的错误信息吗?确实在上面添加了编辑我提交了标题和代码最后一行的编辑(这会导致语法错误)。希望你不介意。实际上我也试过。但是,它会导致名为“utils.api_methods”的无模块在utils目录中包含或不包含init.py。@m.a.d.cat它应该是
\uuuu init\uuuu.py
,而不是
init.py
。你也试过了吗?对不起,我就是这个意思。。。评论没有显示下划线。让我编辑帖子并更新代码好吧,我不能重现那个错误。我不确定出了什么问题。这是你最初的答案。。谢谢我试图导入类而不是蓝图。在这中间,我把我的<代码>
from flask import request
from flask import Blueprint, jsonify, make_response
from flask_restplus import Resource, Api


blueprint = Blueprint('api', __name__, url_prefix='/api')
api = Api(
    blueprint, doc='/', version='1.0',
    title='Testing Blueprints',
    description="Try the API")
api.namespaces = []
ns = api.namespace('', description='test')
parser1 = api.parser()
parser1.add_argument(
    'Path',
    location='headers',
    help='Path to file or directory',
    required=True
)


@ns.route('/resources')
@api.route('/resources')
@api.doc(parser=parser1)
class GetResource(Resource):
    def get(self):
        ...
        return jsonify({'SUCCESS': 'endpoint accessed'})