Flask-Admin的init_app加载方式

本文介绍如何在Flask应用中集成Flask-Admin,并提供了一个实用的例子:在create_app函数中初始化Admin对象,以便更好地管理和组织应用界面。

有时我们需要从其它地方加载flask-admin,比如create_app中,那么你可以这样写

admin = Admin(template_mode='bootstrap3')
……
def create_app(config_name):
    app = Flask(__name__)
    admin.init_app(app)

转载于:https://my.oschina.net/u/217662/blog/683585

### 逐行解析 Flask 代码并说明其作用 以下是对用户提供的 Flask 代码的逐行解析,详细说明每一部分的功能及其在整体脚本中的作用。 #### 1. 导入 Flask 模块 ```python from flask import Flask ``` 此行代码从 Flask 框架中导入 `Flask` 类。`Flask` 是一个轻量级的 Web 框架,用于创建和运行 Web 应用程序[^1]。通过实例化 `Flask` 类,可以生成一个应用程序对象,该对象是整个 Flask 应用程序的核心。 #### 2. 导入 SQLAlchemy 模块 ```python from flask_sqlalchemy import SQLAlchemy ``` 此行代码从 `flask_sqlalchemy` 模块中导入 `SQLAlchemy` 类。`SQLAlchemy` 是一个 ORM(对象关系映射)工具,用于将数据库表与 Python 对象进行映射,从而简化数据库操作[^1]。通过实例化 `SQLAlchemy` 类,可以创建一个数据库管理对象 `db`,用于处理数据库连接、查询等操作。 #### 3. 创建 SQLAlchemy 实例 ```python db = SQLAlchemy() ``` 此行代码创建了一个 `SQLAlchemy` 的实例 `db`,但此时并未将其与 Flask 应用程序关联。稍后需要通过 `init_app` 方法将 `db` 与 Flask 应用程序绑定[^5]。 #### 4. 定义 `create_app` 函数 ```python def create_app(): app = Flask(__name__) db.init_app(app) return app ``` - **创建 Flask 应用程序对象**: ```python app = Flask(__name__) ``` 此行代码创建了一个 Flask 应用程序对象 `app`。`__name__` 参数用于指定应用程序的名称,通常传递 `__name__` 可以帮助 Flask 确定资源文件的路径。 - **初始化 SQLAlchemy**: ```python db.init_app(app) ``` 此行代码将之前创建的 `db` 实例与 Flask 应用程序对象 `app` 关联。通过调用 `init_app` 方法,`db` 可以访问 Flask 应用程序的配置信息,并完成数据库的初始化[^5]。 - **返回 Flask 应用程序对象**: ```python return app ``` 此行代码将配置完成后的 Flask 应用程序对象 `app` 返回,以便其他模块或脚本使用。 #### 5. 配置加载 虽然代码中未明确展示配置加载过程,但通常会在 `create_app` 函数中完成配置加载。例如: ```python app.config.from_object('config.DevelopmentConfig') ``` 此行代码从 `config.py` 文件中加载开发环境的配置信息。配置信息可能包括数据库 URI、密钥等,这些信息对应用程序的正常运行至关重要。 #### 6. 蓝图注册 同样,蓝图注册通常也会在 `create_app` 函数中完成。例如: ```python from .blueprints.example import example_blueprint app.register_blueprint(example_blueprint) ``` 此代码片段从 `blueprints/example.py` 文件中导入蓝图对象 `example_blueprint`,并通过 `register_blueprint` 方法将其注册到 Flask 应用程序对象 `app` 中。蓝图是一种组织 Flask 应用程序的方式,可以将应用程序划分为多个模块[^1]。 --- ### 整体作用 此 Python 脚本的整体作用是定义一个 Flask Web 应用程序,并通过 `SQLAlchemy` 实现数据库支持。具体来说: - 使用 `Flask` 创建应用程序对象。 - 使用 `SQLAlchemy` 初始化数据库管理功能。 - 提供 `create_app` 函数,用于集中完成应用程序的初始化、配置加载和蓝图注册等功能。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值