Я работаю со своим первым приложением flask-RESTplus и сталкиваюсь с проблемами. Вот как устроен мой проект:
proj/
- endpoints/
- __init__.py
- example1.py
- app.py
Вот что у меня есть в init.py:
from flask import Blueprint
from flask_restplus import Api
blueprint1 = Blueprint('api', __name__)
api = Api(blueprint1,version='1.0', title='Sample API',
description='A sample API',
)
ns = api.namespace('todos', description='todo')
Мой example1.py имеет следующий код:
from flask import Flask , request, Blueprint
from flask_restplus import Api, Resource, fields, Namespace
from endpoints import ns
todo = ns.model('Todo', {
'task': fields.String(required=True, description='The task details')
})
@ns.route('/api_route1')
class Todo(Resource):
'''Shows a list of all todos, and lets you POST to add new tasks'''
@ns.doc(parser=parser)
@ns.expect(todo)
#@ns.marshal_list_with(todo)
def post(self):
#processing code
return message
из app.py, вот как я пытаюсь вызвать приложение:
from flask import Flask , request, Blueprint
from flask_restplus import Api, Resource, fields
from werkzeug.middleware.proxy_fix import ProxyFix
from endpoints import api
app = Flask(__name__)
app.wsgi_app = ProxyFix(app.wsgi_app)
app.register_blueprint(api)
if __name__ == '__main__':
app.run(debug=True)
Когда я запускаю свой app.py, я получаю следующую ошибку:
Traceback (most recent call last):
File "Python38-32\lib\site-packages\flask_restplus\api.py", line 215, in __getattr__
return getattr(self.default_namespace, name)
AttributeError: 'Namespace' object has no attribute 'register'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "app.py", line 50, in <module>
app.register_blueprint(api)
File "Python38-32\lib\site-packages\flask\app.py", line 98, in wrapper_func
return f(self, *args, **kwargs)
File "Python38-32\lib\site-packages\flask\app.py", line 1167, in register_blueprint
blueprint.register(self, options, first_registration)
File "Python38-32\lib\site-packages\flask_restplus\api.py", line 217, in __getattr__
raise AttributeError('Api does not have {0} attribute'.format(name))
AttributeError: Api does not have register attribute
Я просматривал документацию по этой ссылке, но не смог получить это работающий. Любая помощь будет оценена по достоинству!
Примечание. У меня есть Python 3.8 и flask-restplus 0.11.0.