ホームページ >バックエンド開発 >Python チュートリアル >Python Flask フレームワークで構成ファイルを使用する 5 つの方法を共有します

Python Flask フレームワークで構成ファイルを使用する 5 つの方法を共有します

高洛峰
高洛峰オリジナル
2017-03-10 17:08:113205ブラウズ

この記事では、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()

大きなグローバル辞書を参照できます:

55d212afb7a56a72090685d9b28281fc


方法 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。