from flask.ext.sqlalchemy import SQLAlchemy # 从 flask 扩展中导入 SQLAlchemy from flask.ext.migrate import Migrate, MigrateCommand # 数据库迁移 from flask.ext.script import Manager from flask.ext.moment import Moment from flask.ext.mail import Mail, Message from flask.ext.login import LoginManager from flask.ext.bootstrap import Bootstrap # Twitter 的开源客户端框架, Bootstrap from flask.ext.pagedown import PageDown # 客户端 Markdown 到 HTML 的转换程序 from config import config bootstrap = Bootstrap() mail = Mail() moment = Moment() db = SQLAlchemy() db.SQLALCHEMY_TRACK_MODIFICATIONS = True pagedown = PageDown() login_manager = LoginManager() login_manager.session_protection = 'strong' login_manager.login_view = 'auth.login' # print lm # <flask_login.LoginManager object at 0x1036899d0> def create_app(config_name): app = Flask(__name__) # 创建实例,因为是作为包被导入,'__name__'是包名,作为 flask 寻找文件的目录 # print __name__,2 # app app.config.from_object(config[config_name]) # 从文件对象 'config' 读取配置到`app.config` config[config_name].init_app(app) bootstrap.init_app(app)