Maison  >  Article  >  développement back-end  >  Partagez cinq façons d'utiliser les fichiers de configuration dans le framework Python Flask

Partagez cinq façons d'utiliser les fichiers de configuration dans le framework Python Flask

高洛峰
高洛峰original
2017-03-10 17:08:113148parcourir

Cet article partage cinq façons d'utiliser le chargement des fichiers de configuration dans le framework python Flask

Plusieurs façons de gérer les fichiers de configuration Flask :

Méthode 1 : configurer directement

#!/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()

pour voir un grand dictionnaire global :

Créer un fichier de variables d'environnement. config.py

Méthode 3 : chargement via des objets (couramment utilisé) --from_object()

code d'objet de configuration - en utilisant la structure de configuration basée sur l'héritage de classe pour enregistrer la valeur par défaut configuration La classe Config sert de classe de base et d'autres classes en héritent.

#内容为键值,不一定要是大字典里的
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'))
Créez un fichier Configlist.py

Appelez Configlist.py

Résultat de l'accès au navigateur :
#!/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
}

Bonjour tout le monde ! /root:password@192.168.1.101/devops localhost aolens

#!/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()

Méthode 4 : via le fichier de configuration - app.config.from_pyfile, le fichier de configuration doit être dans le répertoire de l'application

Méthode 5 : Il s'agit d'une amélioration par rapport à la méthode 4. Gestion des fichiers de configuration du module ConfigParser
如何判断测试环境还是生产:
#!/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()

Introduction à ConfigParser :

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()
est un package utilisé pour lire les fichiers de configuration. Le fichier de configuration est mis entre parenthèses. [] Contenu est la session. Sous la section se trouve le contenu du fichier de configuration similaire à la valeur-clé.

Le format est le suivant :

Utilisation : configure.py

Résultat d'exécution :
vim test.conf
[api] #session
port=11111 #option
path=/data/api/log
[web]
port=1002
path=/data/web/log

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

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')
1002

/data/web/log

Appel : demo.py

Résultat :

Bonjour tout le monde ! 11111 #option

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn