日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

pythonflask configlist.py_Python+Flask.0004.FLASK配置管理之三种方式加载外部配置

發布時間:2023/12/15 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pythonflask configlist.py_Python+Flask.0004.FLASK配置管理之三种方式加载外部配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡單介紹:

說明: 復雜的項目需要配置各種環境,若設置少可直接硬編碼,設置多的話可通過加載配置/加載文件/加載變量的方式來設置

1

2

3

app.config.update(

DEBUG=True,

)

擴展: app.config是flask.config.Config類的實例,繼承子PY內置數據結構dict,所以可以使用如上update方法,支持傳入多個鍵值對,其實app.config內置很多配置變量(http://flask.pocoo.org/docs/0.11/config/#Builtin%20Configuration%20Values),而且app.config支持多種更新配置的方式

注意: 不管使用哪種配置方式,配置中的鍵名稱都必須大寫,不然不會被識別加載,千萬注意~

加載配置:

說明: 支持通過配置文件模塊名或導入后的模塊對象加載配置

# 方式一: app.config.from_object('config')傳遞為字符串參數時則會自動加載根目錄下的config.py文件且只會加載文件中變量名為大寫的變量

1

2

3

4

5

6

7

8

9

10

11

12

13

#!/usr/bin/env?python

#?-*-?coding:?utf-8?-*-

"""

#

#?Authors:?limanman

#?51CTOBG:?http://xmdevops.blog.51cto.com/

#?Purpose:

#

"""

from?__future__import?absolute_import

#?說明:?導入公共模塊

#?說明:?導入其它模塊

AUTHOR=?'LIMANMAN'

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

#!/usr/bin/env?python

#?-*-?coding:?utf-8?-*-

"""

#

#?Authors:?limanman

#?51CTOBG:?http://xmdevops.blog.51cto.com/

#?Purpose:

#

"""

#?說明:?導入公共模塊

from?flaskimport?Flask

#?說明:?導入其它模塊

app=?Flask(__name__)

app.config.from_object('config')

.route('/')

def?hello_word():

return?app.config.get('AUTHOR')

if?__name__==?'__main__':

app.run(host='0.0.0.0',?port=9000)

# 方式二: app.config.from_object(config)傳遞為對象時則會自動加載該對象,且只會加載對象中屬性名為大寫的屬性,既然是對象那就表示傳遞類也是可以的.

1

2

3

4

5

6

7

8

9

10

11

12

13

#!/usr/bin/env?python

#?-*-?coding:?utf-8?-*-

"""

#

#?Authors:?limanman

#?51CTOBG:?http://xmdevops.blog.51cto.com/

#?Purpose:

#

"""

from?__future__import?absolute_import

#?說明:?導入公共模塊

#?說明:?導入其它模塊

AUTHOR=?'LIMANMAN'

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

#!/usr/bin/env?python

#?-*-?coding:?utf-8?-*-

"""

#

#?Authors:?limanman

#?51CTOBG:?http://xmdevops.blog.51cto.com/

#?Purpose:

#

"""

#?說明:?導入公共模塊

import?config

from?flaskimport?Flask

#?說明:?導入其它模塊

app=?Flask(__name__)

app.config.from_object(config)

.route('/')

def?hello_word():

return?app.config.get('AUTHOR')

if?__name__==?'__main__':

app.run(host='0.0.0.0',?port=9000)

加載文件:

說明: 支持通過文件名加載,且后綴名不限于.py,默認如果文件不存在會拋異常,可使用silent=True設置不拋異常

1

2

3

4

5

6

7

8

9

10

11

12

13

#!/usr/bin/env?python

#?-*-?coding:?utf-8?-*-

"""

#

#?Authors:?limanman

#?51CTOBG:?http://xmdevops.blog.51cto.com/

#?Purpose:

#

"""

from?__future__import?absolute_import

#?說明:?導入公共模塊

#?說明:?導入其它模塊

AUTHOR=?'LIMANMAN'

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

#!/usr/bin/env?python

#?-*-?coding:?utf-8?-*-

"""

#

#?Authors:?limanman

#?51CTOBG:?http://xmdevops.blog.51cto.com/

#?Purpose:

#

"""

#?說明:?導入公共模塊

from?flaskimport?Flask

#?說明:?導入其它模塊

app=?Flask(__name__)

app.config.from_pyfile('config.py',?silent=True)

.route('/')

def?hello_word():

return?app.config.get('AUTHOR')

if?__name__==?'__main__':

app.run(host='0.0.0.0',?port=9000)

加載變量:

說明: 支持通過環境變量加載,默認如果文件不存在會拋異常,可使用silent=True設置不拋異常

set CONFIG=config.py

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

#!/usr/bin/env?python

#?-*-?coding:?utf-8?-*-

"""

#

#?Authors:?limanman

#?51CTOBG:?http://xmdevops.blog.51cto.com/

#?Purpose:

#

"""

#?說明:?導入公共模塊

from?flaskimport?Flask

#?說明:?導入其它模塊

app=?Flask(__name__)

app.config.from_envvar('CONFIG',?silent=True)

.route('/')

def?hello_word():

return?app.config.get('AUTHOR')or?'ERROR'

if?__name__==?'__main__':

app.run(host='0.0.0.0',?port=9000)

注意: 特別是在Windows上set CONFIG=config.py時,千萬別手欠把config.py加引號,而且視圖函數一定要記得返回一個Response對象,由于None無法生成響應對象,所以一定要確定你返回的不是None

常用方式:

# 方式一: 在外部加載配置文件時通過from config import config來按需導入開發環境/預測試環境/正式環境不同的配置,通過app.config.from_object(config['default'])來加載配置

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

#!/usr/bin/env?python

#?-*-?coding:?utf-8?-*-

"""

#

#?Authors:?limanman

#?51CTOBG:?http://xmdevops.blog.51cto.com/

#?Purpose:

#

"""

from?__future__import?absolute_import

#?說明:?導入公共模塊

#?說明:?導入其它模塊

#?說明:?配置基類

class?__Config(object):

AUTHOR=?'LIMANMAN'

#?說明:?開發環境

class?__DevsConfig(__Config):

pass

#?說明:?預測環境

class?__TestConfig(__Config):

pass

#?說明:?正式環境

class?__ProdConfig(__Config):

pass

#?說明:?按需加載

config=?{

'default':?__DevsConfig,

'develop':?__TestConfig,

'testing':?__ProdConfig,

'product':?__ProdConfig,

}

# 方式二: 在在外部加載配置文件時通過try ... except ...嘗試導入本地配置,上線時刪掉本地配置文件即可,記得忽略ImportError,不然線上導入找不到配置模塊會報錯

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

#!/usr/bin/env?python

#?-*-?coding:?utf-8?-*-

"""

#

#?Authors:?limanman

#?51CTOBG:?http://xmdevops.blog.51cto.com/

#?Purpose:

#

"""

from?__future__import?absolute_import

#?說明:?導入公共模塊

#?說明:?導入其它模塊

#?說明:?線上相關配置

#?說明:?覆蓋線上配置

try:

from?devs_configimport?*

except?ImportError,?e:

pass

或關注我們的官方微博微信,還有更多驚喜哦~

總結

以上是生活随笔為你收集整理的pythonflask configlist.py_Python+Flask.0004.FLASK配置管理之三种方式加载外部配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。