>백엔드 개발 >파이썬 튜토리얼 >Python Flask 프레임워크에서 구성 파일을 사용하는 5가지 방법 공유

Python Flask 프레임워크에서 구성 파일을 사용하는 5가지 방법 공유

高洛峰
高洛峰원래의
2017-03-10 17:08:113150검색

이 문서에서는 Python Flask 프레임워크에서 구성 파일 로드를 사용하는 5가지 방법을 공유합니다.

Flask 구성 파일을 관리하는 여러 가지 방법:

방법 1: 직접 구성

#!/usr/bin/env python
# encoding: utf-8
from flask import Flask
import time
app = Flask(__name__)
app.config['SEND_FILE_MAX_AGE_DEFAULT']=time.asctime()
app.config['HOST']='www.aolens.cn'
print app.config
@app.route('/')
def hello_world():
   return 'Hello World!  %s  %s' %(app.config.get('SEND_FILE_MAX_AGE_DEFAULT'),app.config.get('HOST'))
if __name__=='__main__':
   app.run()

글로벌 대형 사전 보기:

5b7359062e2dc8e9b886f0b63c1e5a35


방법 2 : 환경변수를 통해 구성을 로드합니다.

환경변수 파일을 생성합니다. config.py

#内容为键值,不一定要是大字典里的
HOST=localhost
POST=3306   #自己创建
export CONFIG_SET=./config.py
代码中:
app.config.from_envvar('CONFIG_SET)
@app.route('/')
def hello_world():
return "hello world %s %s" %(app.config.get('HOST'),app.config.get('POST'))

방법 3: 객체를 통해 로드(일반적으로 사용됨)-from_object()

config 객체 코드--클래스 상속 기반 구성 구조를 사용하여 기본 구성 구성 저장 class 기본 클래스로서 다른 클래스는 이 클래스에서 상속됩니다.

Configlist.py 파일 만들기

#!/usr/bin/env python
# encoding: utf-8
class Config():   #父类可以被下边的类继承到AUTHOR参数
   AUTHOR='aolens'
class DevelopmentConfig(Config):
   DEBUG = True
   SQL_URI='mysql://root:password@192.168.1.101/test'
class ProductionConfig(Config):
   SQL_URI='mysql://root:password@192.168.1.101/devops'
   HOST='localhost'
config ={ #将类写成字典的形式存储
   'dev':DevelopmentConfig,
   'pro':ProductionConfig,
   'default':DevelopmentConfig
}

Configlist.py 호출

#!/usr/bin/env python
# encoding: utf-8
from flask import Flask
from configlist import *
import time
app = Flask(__name__)
#对象加载,from config import *
#第一种加载方式
app.config.from_object(ProductionConfig)
#第二种加载方式,加载简写的config短也可以加载的到
#app.config.from_object(config['pro'])
print app.config
@app.route('/')    #/表示URL后边+/,也可使其他URI,访问就是IP+URI
def hello_world():
   return 'Hello World!  %s  %s %s' %(app.config.get('SQL_URI'),app.config.get('HOST'),app.config.get('AUTHOR'))
if __name__=='__main__':
   app.run()

브라우저 액세스 결과:

Hello World! mysql://root: 비밀번호 @192.168.1.101/devops localhost aolens

如何判断测试环境还是生产:
#!/usr/bin/env python
# encoding: utf-8
from flask import Flask
from config2 import *
import os
import time
app = Flask(__name__)
if os.path.exists("./pro"):
   app.config.from_object(config['pro'])
elif os.path.exists("./dev"):
   app.config.from_object(DevelopmentConfig)  
print app.config
@app.route('/TEST')
def hello_world():
   return 'Hello World!  %s  %s %s' %(app.config.get('SQL_URI'),app.config.get('HOST'),app.config.get('AUTHOR'))
if __name__=='__main__':
   app.run()

방법 4: 구성 파일 - app.config.from_pyfile을 통해 구성 파일은 앱 디렉터리

vim confile.py
HOST='locolhost'
PORT=10000
AUTHOR='aolens'
from flask import Flask
app.config.from_pyfile('./confile.py') #加载配置文件
print app.config
@app.route('/TEST')
def hello_world():
   return 'Hello World!  %s  %s %s' %(app.config.get('PORT'),app.config.get('HOST'),app.config.get('AUTHOR'))
if __name__=='__main__':
   app.run()

에 있어야 합니다. 방법 5: 올바른 방법 4 ConfigParser 모듈 구성 파일 관리 개선

ConfigParser 소개:

은 구성 파일을 읽는 데 사용되는 패키지입니다. 섹션 아래에는 키-값과 유사한 구성 파일 콘텐츠가 있습니다.

형식은 다음과 같습니다:

vim test.conf
[api] #session
port=11111 #option
path=/data/api/log
[web]
port=1002
path=/data/web/log

사용:configure.py

import ConfigParser
def getconfig(filename,section=''):
   cf=ConfigParser.ConfigParser()   #实例化
   cf.read(filename)   #读取配置文件
   cf_items = dict(cf.items(section)) if cf.has_section(section)  else {}  #判断SECTION是否存在,存在把数据存入字典,没有返回空字典
   return cf_items
if __name__=='__main__':
   conf =getconfig('test.conf','web')
   print conf
   print conf['port']
   print conf.get('path')

실행 결과:

{'path': '/data/web /log' , 'port': '1002'}

1002

/data/web/log

호출: deco.py

#!/usr/bin/env python
# encoding: utf-8
from confile import getconfig
from flask import Flask
app = Flask(__name__)
#直接配置
@app.route('/TEST')
def hello_world():
     conf=getconfig('test.conf','api')
     return 'Hello World!   %s' %(conf['port'])
if __name__=='__main__':
     app.run()

결과 :

안녕하세요 11111 #옵션

위 내용은 Python Flask 프레임워크에서 구성 파일을 사용하는 5가지 방법 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.