この記事では、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()
大きなグローバル辞書を参照できます:
<構成 {'JSON_AS_ASCII': True、'USE_X_SENDFILE': False、'SESSION_COOKIE_PATH': なし、'SESSION_COOKIE_DOMAIN': なし、'SESSION_COOKIE_NAME': 'セッション'、'SESSION_REFRESH_EACH_REQUEST': True、'LOGGER_HANDLER_ POLICY':方法「、」 LOGGER_NAME': '__main__'、'DEBUG': False、'SECRET_KEY': なし、'EXPLAIN_TEMPLATE_LOADING': False、'MAX_CONTENT_LENGTH': なし、'APPLICATION_ROOT': なし、'SERVER_NAME': なし、'PREFERRED_URL_SCHEME': 'http' 、 'jsonify_prettyprint_regulal':true、 'testing':false、 'host': 'www.aolens.cn'、 'permannce_session_lifetime':datetime.timedelta(31)、 'propagate_exceptions':ne、 'templates_auto_reload' ':false、' json_sort_keys ':true、' jsonify_mimetype ':' application/json '、' session_cookie_httponly ':true、' thu send_file_max_age_default ':' thu mar 2 16:33:17 2017 '、 SESSION_COOKIE_SECURE': False, 'TRAP_HTTP_EXCEPTIONS': False}>
方法 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 オブジェクト コード - クラス継承に基づいて config 構造を使用し、デフォルトの構成 Config クラスを基本クラスとして保存し、他のクラスは継承しますそれ 。
ファイル 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:password@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
呼び出し:demo.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()
結果:
Hello World!
以上がPython Flask フレームワークで構成ファイルを使用する 5 つの方法を共有しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。