2013-11-19 1 views
8

app.config.from_envvar() 사용 방법은 무엇입니까?app.config.from_envvar를 사용하는 방법은 무엇입니까? (플라스크)

나는 Flask doc을보고이 주제에 대해 내가 아는 바를 알고있다.

DATABASE = 'flaskr.db' 
DEBUG = True 
SECRET_KEY = 'development key' 

app = Flask(__name__) 
app.config.from_envvar(’FLASKR_SETTINGS’, silent=True) 

이 설정을 FLASKR_SETTINGS에서로드합니까? 프로그램이 FLASKR_SETTINGS이 무엇인지 어떻게 알 수 있습니까? 나는 또한이 같은 (설정 파일의 경로)?

FLASKR_SETTINGS = desktop/my_flask_project/FlaskConfig 

을 설정하고 해당 파일에 처음 3 개 라인을 이동하고 나는이 파일을 실행할 때, 그것은로드됩니다해야합니까?

나는이 권한 만 사용하도록 선택 했습니까? app.config.from_envvar (외부 파일의로드 구성에 대한 것) 또는 app.config.from_object (이름) (이 파일에 config가로드됩니다) 사이에 있습니까? 나는 정확하게 이해하고 있는가?

답변

5

envvar하는 Environment Variable의 약자입니다. Linux 기반 OS (Ubuntu, Mac 등)를 사용하는 경우 일반 쉘을 실행하면 bash이 실행 중일 수 있습니다. 배쉬에서 환경 변수를 설정하려면 당신은 단순히 수행

$ SOME_NAME=some_value 

는 그래서 FLASKR_SETTINGS 환경 변수에서 자신을 구성된 플라스크 응용 프로그램의 경우, 당신이 할 것 : 플라스크가 무엇

$ FLASKR_SETTINGS=/path/to/settings/file.ext 
$ python your_script.py 

입니다 보통의 파이썬 파일처럼 그 파일을 가져오고 파일의 모든 UPPERCASE_ONLY 이름을 꺼냅니다 (다른 모든 caseCombination은 무시됩니다).

동일 from_object 마찬가지입니다 - 사실, from_object는 또한 가져올 수 문자열을 수행 할 수 있습니다 만 하나 설정 통화를 시작할 필요가 없습니다주의, 마지막으로

app.config.from_object("importable.configuration") 

을 - 다중 호출 사용할 수 있습니다

그래서
app.config.from_object("your.package.default.config") 
app.config.from_envvar("YOUR_APPS_ENVVAR", silent=True) 
+0

내 경우에는 난 단지 난 단지 app.config.from_envvar()를 필요로 외부에서 설정을 사용하고 app.config.from_object 사용하지 않는 경우() 맞죠? 너는 복수 통화가 선택적이라고 나에게 말해 줄까? 구성 코드가 들어있는 파일은 .py 여야합니다. 또는 .ext? 나는 Doc에서 그것을 본다 .cfg o_O !!! – Team

+0

@Team - 맞다. 원하는 from_object와 from_envvar의 조합을 사용할 수있다. 확장에 관해서는 원하는 모든 것이 될 수 있습니다 ('.py','.cfg','.i-just-made-up-right-now' ... 그들은 모두 작동합니다). –

+0

나는 타이핑을했다./usr/bin/activate 다음에 FLASKR_CONFIG = Users/Team/desktop/flask \ project/flaskr/config.py를 내 보낸 다음 python flaskr.py를 실행하면 오류가 발생합니다. SyntaxError : flaskr.py 파일의 비 ASCII 문자 '\ xe2' 8 번 줄을 선언했지만 인코딩을 선언하지 않았습니다. http : //www.python을 참조하십시오.자세한 내용은 (태블릿) Tammarats-MacBook-Air : flaskr 팀 $ << ---- 라인 8은이 코드입니다. app.config.from_envvar ('FLASKR_CONFIG', silent = True) 내가 잘못 했어? 오류에 대해 뭐라 말합니까? – Team

관련 문제