使用 flask admin 设置配置参数
Use flask admin to set config parameters
正如标题所说,我有一个小型网络应用程序,没有使用数据库和模型。
我想要界面来更改一些 Flask 自己的配置参数,并且认为 flask-admin 可以让我很快到达那里。这很容易实现吗?
通常在启动应用程序后不重新启动服务器就无法更改配置。
- 应用程序(至少在生产中)将由多个进程提供服务,甚至可能在多个服务器上。对配置的更改只会影响处理请求的进程,直到其他进程被收割并重新启动。即使那样,他们也可能会在读取配置后的某个时间分叉。
- 扩展程序读取配置的方式不一致。有些人在每次请求时都从
current_app
中读取配置。有些人只在 init_app
期间阅读它并存储他们自己的副本,因此更改配置不会更改他们的副本。
- 即使每次都读取配置,有些配置就是无法更改,或者还需要其他步骤。例如,如果您更改数据库,您可能应该确保还关闭与旧数据库的所有连接,配置对此一无所知。另一个例子,你可以改变调试模式,但它不会做任何事情,因为大部分日志记录都是提前设置的。
Web 应用程序可能不是唯一依赖配置的东西,因此即使您可以在配置更改时自动重启它,您也需要重新启动依赖服务,例如 Celery。这些服务 也 可能在完全不同的机器上或作为不同的用户。
配置通常存储在 Python 文件中,因此您需要创建一个可以转储有效 Python 代码的序列化程序,或者为不同的格式编写配置加载程序。
Flask-Admin 可能能够用于创建用于编辑配置的用户界面,但它不会以其他方式帮助解决任何这些问题。
在启动应用程序后尝试更改 Flask.config
真的不值得。它不是为此而设计的。如果你需要的话,专门为你需要的配置设计一个配置系统,但不要指望能够普遍改变 Flask.config
.
正如标题所说,我有一个小型网络应用程序,没有使用数据库和模型。
我想要界面来更改一些 Flask 自己的配置参数,并且认为 flask-admin 可以让我很快到达那里。这很容易实现吗?
通常在启动应用程序后不重新启动服务器就无法更改配置。
- 应用程序(至少在生产中)将由多个进程提供服务,甚至可能在多个服务器上。对配置的更改只会影响处理请求的进程,直到其他进程被收割并重新启动。即使那样,他们也可能会在读取配置后的某个时间分叉。
- 扩展程序读取配置的方式不一致。有些人在每次请求时都从
current_app
中读取配置。有些人只在init_app
期间阅读它并存储他们自己的副本,因此更改配置不会更改他们的副本。 - 即使每次都读取配置,有些配置就是无法更改,或者还需要其他步骤。例如,如果您更改数据库,您可能应该确保还关闭与旧数据库的所有连接,配置对此一无所知。另一个例子,你可以改变调试模式,但它不会做任何事情,因为大部分日志记录都是提前设置的。
Web 应用程序可能不是唯一依赖配置的东西,因此即使您可以在配置更改时自动重启它,您也需要重新启动依赖服务,例如 Celery。这些服务 也 可能在完全不同的机器上或作为不同的用户。
配置通常存储在 Python 文件中,因此您需要创建一个可以转储有效 Python 代码的序列化程序,或者为不同的格式编写配置加载程序。
Flask-Admin 可能能够用于创建用于编辑配置的用户界面,但它不会以其他方式帮助解决任何这些问题。
在启动应用程序后尝试更改 Flask.config
真的不值得。它不是为此而设计的。如果你需要的话,专门为你需要的配置设计一个配置系统,但不要指望能够普遍改变 Flask.config
.