2016-09-04 13 views
-1

タイトルによれば、データベースとモデルを使用せずに小さなWebアプリケーションがあります。フラスコ管理を使用して設定パラメータを設定します

私は、Flask独自の設定パラメータの一部を変更するインターフェイスを希望しています。フラスコ管理者がすぐに私をそこに連れてくるかもしれません。これは簡単に可能ですか?

答えて

1

通常、サーバーを再起動せずにアプリケーションを起動した後で構成を変更することはできません。

  1. アプリケーションは、少なくとも複数のプロセスで処理されます(複数のサーバーで処理される場合もあります)。構成の変更は、他のプロセスが収穫されて再開するまで、要求を処理したプロセスにのみ影響します。それでも、設定が読み込まれた後、ある時点からフォークすることがあります。
  2. 構成の読み方について、拡張機能に一貫性がありません。一部の人は、毎回current_appの設定を読んでいます。一部の人はinit_appの間にそれを読んで自分のコピーを保存するだけなので、設定を変更してもコピーは変更されません。
  3. 毎回構成を読み込んでも、一部の構成を変更することはできず、他の手順も必要です。たとえば、データベースを変更する場合は、古いデータベースへのすべての接続も閉じていることを確認する必要があります。別の例では、デバッグモードを変更できますが、ほとんどのログは事前に設定されているため、何もしません。

設定に依存するのは唯一のものではない可能性があるため、設定を変更したときに自動的に再起動できる場合でも、Celeryなどの依存サービスを再起動する必要があります。また、これらのサービスは、まったく異なるマシンまたは異なるユーザーである可能性があります。

設定は通常Pythonファイルに保存されるため、有効なPythonコードをダンプするシリアライザを作成するか、別の形式の設定ローダーを作成する必要があります。

Flask-Adminを使用して設定を編集するためのユーザーインターフェイスを作成することはできますが、それ以外の方法では問題はありません。

アプリケーションを起動した後にFlask.configを試して変更する価値はありません。それはちょうどそれのために設計されていません。あなたが必要とするものなら、あなたが必要とする設定用の設定システムを特別に設計しますが、一般的にはFlask.configを変更することはできません。

+0

あなたの答えをありがとう。私は自分の設定パラメータ(私は自分のコード関数の初期値としてそれらを使用する)と私は可能性がFlask - adminを使用することができますが、確信していないと思ったインターフェイスを意味した... – vlad

関連する問題