以蓝图格式实现flask-upload

时间:2014-12-01 08:01:53

标签: python flask flask-uploads

我在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

0 个答案:

没有答案