pip install import_string
基于字符串导入对象。如果要将导入路径用作端点或类似的东西,这非常有用。导入路径可以用点.
分号表示,也可以用冒号作为对象分隔符(:
)。如果silent为True,则导入失败时返回值为None。
import import_string
module = import_string ('my_system.my_package.my_module' )
function = import_string ('my_system.my_module:some_function' )
Class = import_string ('my_system.my_module:SomeClass' , silent = True )
#如果路径不存在Class = None
import_string 工厂模式
from flask import Flask
from flask.ext.mail import Mail
from flask.ext.sqlalchemy import SQLAlchemy
from werkzeug.utils import import_string
mail = Mail()
db = SQLAlchemy()
blueprints = [
'myapp.main:main',
'myapp.admin:admin',
]
def create_app(config):
app = Flask(__name__)
app.config.from_object(config)
# Load extensions
mail.init_app(app)
db.init_app(app)
# Load blueprints
for bp_name in blueprints:
bp = import_string(bp_name)
app.register_blueprint(bp)
return app