Flask-admin:ImportError:没有名为ext.sqlalchemy的模块

时间:2018-05-26 16:19:24

标签: python flask flask-sqlalchemy flask-admin

instruction之后,我尝试运行一个flask-admin wysiwyg的示例,如下所示,直到最后一步运行python examples/wyswyg/app.py

  1. 克隆存储库:

    git clone https://github.com/mrjoes/flask-admin.git

    cd flask-admin

  2. 创建并激活虚拟环境:

    virtualenv env

    source env/bin/activate

  3. 安装要求:

    pip install -r 'examples/wysiwyg/requirements.txt'

  4. 运行应用程序:

    python examples/wysiwyg/app.py

  5. 在第4步,我收到了错误

    Traceback (most recent call last):
      File "examples/wysiwyg/app.py", line 2, in <module>
        from flask.ext.sqlalchemy import SQLAlchemy
    ImportError: No module named ext.sqlalchemy
    

    实例/所见即所得/ requirements.txt

    Flask
    Flask-Admin
    Flask-SQLAlchemy
    

    实例/所见即所得/ app.py

    from flask import Flask
    from flask.ext.sqlalchemy import SQLAlchemy
    
    from wtforms import fields, widgets
    
    from flask.ext import admin
    from flask.ext.admin.contrib import sqla
    
    # Create application
    app = Flask(__name__)
    
    # Create dummy secrey key so we can use sessions
    app.config['SECRET_KEY'] = '123456790'
    
    # Create in-memory database
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///sample_db.sqlite'
    app.config['SQLALCHEMY_ECHO'] = True
    db = SQLAlchemy(app)
    
    
    # Define wtforms widget and field
    class CKTextAreaWidget(widgets.TextArea):
        def __call__(self, field, **kwargs):
            kwargs.setdefault('class_', 'ckeditor')
            return super(CKTextAreaWidget, self).__call__(field, **kwargs)
    
    
    class CKTextAreaField(fields.TextAreaField):
        widget = CKTextAreaWidget()
    
    
    # Model
    class Page(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.Unicode(64))
        text = db.Column(db.UnicodeText)
    
        def __unicode__(self):
            return self.name
    
    
    # Customized admin interface
    class PageAdmin(sqla.ModelView):
        form_overrides = dict(text=CKTextAreaField)
    
        create_template = 'create.html'
        edit_template = 'edit.html'
    
    
    # Flask views
    @app.route('/')
    def index():
        return '<a href="/admin/">Click me to get to Admin!</a>'
    
    
    if __name__ == '__main__':
        # Create admin
        admin = admin.Admin(app, name="Example: WYSIWYG")
    
        # Add views
        admin.add_view(PageAdmin(Page, db.session))
    
        # Create DB
        db.create_all()
    
        # Start app
        app.run(debug=True)
    

    它有什么问题?我需要安装哪些要求才能使其正常运行?感谢。

0 个答案:

没有答案