FlaskアプリケーションがHTTPまたはHTTPSで実行されているかどうかによって、Flaskアプリケーションを異なる方法で設定することが望まれます。flask_request.is_secureをcreate_app()内で使用する
次のコードは、RuntimeErrorを発生させます。
どのようにしてFlaskを動的に設定しますか?
デプロイするたびに、さまざまな設定を手動で変更するのは苦労します。自動解決が望ましいFlaskには、実行されるまでどのマシンが実行されているかを知るメカニズムがないというのは奇妙なことです。多分flask.requestは間違った方法です。
私はthis documentationとthis SO postを読みました。
from flask import Flask, request
def create_app():
app = Flask(__name__)
app.config['DEBUG'] = not request.is_secure
return app
# Initialize App
app = create_app()
エラーの詳細。
RuntimeError: Working outside of request context.
This typically means that you attempted to use functionality that needed an active HTTP request. Consult the documentation on testing for information about how to avoid this problem.
flask config docsに基づくもう1つの試行。同じRuntimeErrorを受け取りました。ダニエルローズマンとして
# Configuration Options
class Config(object):
DEBUG = False
TESTING = False
FLASKS3_BUCKET_NAME = 'nueverest'
FLASKS3_USE_HTTPS = True
USE_S3_DEBUG = False
class Production(Config):
pass
class Development(Config):
DEBUG = True
USE_S3_DEBUG = True
app = Flask(__name__) # Initialize Application
if request.is_secure: # Select Configuration
app.config.from_object(Production)
else:
app.config.from_object(Development)
? –
意味があります。リクエストオブジェクトの仕組みを完全に理解できませんでした。 –
@PJサントロそのリンクはすでに質問で提供されていました。 –