私のFlaskプロジェクトの http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-のレイアウトに従いましたi-hello-world 。
私は次の構造を持っています:
app/
__init__.py
views.py
forms.py
myFile.py
run.py
config.py
Views.pyでは、forms.pyを使用できます
from config import basedir
ただし、myFile.pyでは使用できません
追加した
import Flask
そして、変更すると、Flask Webサーバーが再起動しますが、app/myFile.pyで変更が見つかったとは言わず、再起動するだけです。
使用するには何をする必要がありますか
from config import basedir
私のpythonファイル。__init__.py
for forms.py。
編集:これは私の__init__.py
ファイル:
from flask import Flask
from config import basedir
app = Flask(__name__)
app.config.from_object('config')
from app import views
Flaskでの構成について話すとき、彼らは一般にアプリの構成への値のロードについて話します。上記の例では、_init.py
_ファイルにapp.config.from_object('config')
のようなものを含めることができます。次に、すべての構成値が_app.config
_辞書にロードされます。
その後、任意のファイルでアプリオブジェクトをインポートするだけで、その辞書にアクセスできます。 _from flask import current_app as app
_を実行することでapp
オブジェクトにアクセスする傾向があり、次に_app.config['MY_SETTING']
_だけを使用して、関心のある値を取得します。 ドキュメントの詳細を参照 。
少しいじった後(および 'netからの少しの助け)、構成を含めるようにコードを変更することにより、これをさらに改善できました。
app.config.from_object('config.ProductionConfig')
これにより、このクールなパターン構成が可能になります。
class Config(object):
DEBUG = True
DEVELOPMENT = True
SECRET_KEY = 'do-i-really-need-this'
FLASK_HTPASSWD_PATH = '/secret/.htpasswd'
FLASK_SECRET = SECRET_KEY
DB_Host = 'database' # a docker link
class ProductionConfig(Config):
DEVELOPMENT = False
DEBUG = False
DB_Host = 'my.production.database' # not a docker link
現在残っているのは、テスト設定をこれに統合する方法を確認することですが、少なくともそれは不器用ではありません。