이 문서에서는 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()
글로벌 대형 사전 보기:
방법 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!