我在Flask中创建了一个模块,我可以在其中上传个人资料图片。我为此使用了Flask上传。但是,我在如何初始化存储方面遇到了问题。
这就是我的所作所为:
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是我config.py
文件中的一个函数。我config.py
的代码如下所示。
这就是我想要发生的事情,但是我得到了一个错误。它声明我需要get_default_storage_class
的参数。所以我的常识出现了,并且这样做了:
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)
它没有错误,但是当我尝试在views.py
文件中导入存储时。这就是我的所作所为:
from .. import db, Storage
然后,我又遇到了一个错误。这表明我无法导入存储。
无论如何,这是我的config.py:
Class Config:
#..
#initialization stuff
@staticmethod
def init_app(app):
pass
这里是追溯:
(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