I'm creating a module in Flask where in I can upload a Profile picture. I used Flask uploads for this. However, I'm having problems in how to initialize my Storage.
Here's what I did:
from flask.ext.bootstrap import Bootstrap
from flask.ext.mail import Mail
from flask.ext.moment import Moment
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.login import LoginManager
from config import config
from flask.ext.storage import get_default_storage_class
from flask.ext.uploads import init
bootstrap = Bootstrap()
mail = Mail()
moment = Moment()
db = SQLAlchemy()
Storage = get_default_storage_class()
login_manager = LoginManager()
login_manager.session_protection = 'strong'
login_manager.login_view = 'auth.login'
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
config[config_name].init_app(app)
Storage.init_app(app)
bootstrap.init_app(app)
mail.init_app(app)
moment.init_app(app)
db.init_app(app)
login_manager.init_app(app)
from .main import main as main_blueprint
app.register_blueprint(main_blueprint)
from .auth import auth as auth_blueprint
app.register_blueprint(auth_blueprint, url_prefix='/auth')
return app
P.S: init_app is a function from my config.py
file. The code of my config.py
is written below.
That's what I want to happen, however I get an error. It states that I need a parameter for the get_default_storage_class
. So my common sense emerges, and did this:
bootstrap = Bootstrap()
mail = Mail()
moment = Moment()
db = SQLAlchemy()
login_manager = LoginManager()
login_manager.session_protection = 'strong'
login_manager.login_view = 'auth.login'
def create_app(config_name):
#...
Storage = get_default_storage_class(app)
It worked without errors, but when I try to import Storage in my views.py
file. Here's what I did:
from .. import db, Storage
And then, I got an error again. Which states that I can't import Storage.
Anyway, here's my config.py:
Class Config:
#..
#initialization stuff
@staticmethod
def init_app(app):
pass
Here's the traceback:
(venv) C:\Users\LouieCubero\Documents\GitHub\flasky3>python manage.py runserver
Traceback (most recent call last):
File "manage.py", line 7, in <module>
app=create_app(os.getenv('FLASK_CONFIG') or 'default')
File "C:\Users\LouieCubero\Documents\GitHub\flasky3\app\__init__.py", line 36,
in create_app
from .main import main as main_blueprint
File "C:\Users\LouieCubero\Documents\GitHub\flasky3\app\main\__init__.py", lin
e 5, in <module>
from . import views, errors
File "C:\Users\LouieCubero\Documents\GitHub\flasky3\app\main\views.py", line 5
, in <module>
from .. import db, Storage
ImportError: cannot import name Storage