Heim > Artikel > Backend-Entwicklung > Teilen Sie fünf Möglichkeiten zur Verwendung von Konfigurationsdateien im Python-Flask-Framework
In diesem Artikel werden fünf Möglichkeiten beschrieben, das Laden von Konfigurationsdateien im Python-Flask-Framework zu verwenden.
Mehrere Möglichkeiten, Flask-Konfigurationsdateien zu verwalten:
Methode 1: Direkt konfigurieren
#!/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()
um ein globales großes Wörterbuch anzuzeigen:
Das obige ist der detaillierte Inhalt vonTeilen Sie fünf Möglichkeiten zur Verwendung von Konfigurationsdateien im Python-Flask-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
>#内容为键值,不一定要是大字典里的
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'))
Methode 3: Laden durch Objekte (häufig verwendet) – from_object()Konfigurationsobjektcode – Verwendung der Konfigurationsstruktur basierend auf Klassenvererbung, um die Standardeinstellung zu speichern Konfiguration Die Config-Klasse dient als Basisklasse und andere Klassen erben von ihr. Erstellen Sie eine Datei 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
}
Rufen Sie Configlist.py auf#!/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()
Browser-Zugriffsergebnis: Hallo 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()
Methode 4: Über die Konfigurationsdatei – app.config.from_pyfile, muss sich die Konfigurationsdatei im App-Verzeichnis befinden 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()
Methode 5: Dies ist eine Verbesserung gegenüber Methode 4. Konfigurationsdateiverwaltung des ConfigParser-Moduls ConfigParser-Einführung: ist ein Paket, das zum Lesen von Konfigurationsdateien verwendet wird. Die Konfigurationsdatei ist in Klammern eingeschlossen [] Enthalten ist Sitzung. Unterhalb des Abschnitts befindet sich der Inhalt der Konfigurationsdatei, ähnlich dem Schlüsselwert. Das Format ist wie folgt: vim test.conf
[api] #session
port=11111 #option
path=/data/api/log
[web]
port=1002
path=/data/web/log
Verwendung: configure.pyimport 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')
Laufendes Ergebnis: {'path': ' /data/ web/log', 'port': '1002'}1002/data/web/logAufruf: 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()
Ergebnis:Hallo Welt! 11111 #option