條件:
藍圖對象的名字與模塊文件夾的名字相同,在app目錄下方贱鄙,例如:
app
-auth
-admin
...
在auth模塊中的__init__中創(chuàng)建auth模塊的藍圖對象敦姻,藍圖名稱auth
admin等其他模塊格式與auth相同
def create_app(config_name):
# 參加Flask應(yīng)用程序?qū)嵗? app = Flask(__name__)
# 導入配置參數(shù)
config_mode = config[config_name]
app.config.from_object(config_mode)
mail.init_app(app)
filenames = os.listdir("app")
# 利用os模塊找到藍圖對象所在的路徑
for filename in filenames:
if os.path.isdir("app/"+filename) and os.path.exists('app/'+filename+'/__init__.py'):
bp = import_string('app.'+filename+':'+filename)
app.register_blueprint(bp)
print(app.url_map)
print(app.config.get("NAME"))
return app
import_string(import_name, silent=False)
- import_name:要導入的對象的模塊或?qū)ο竺Q
- silent:如果設(shè)置為True粒氧,則忽略導入錯誤馍忽,相反則返回None
import_name 格式一般為:
'app.auth:auth'
silent參數(shù)可以省略