flask 6 Flask專案配置原始碼解讀

2022-05-08 23:12:06 字數 2151 閱讀 8152

3、配置方式2-物件中配置:from_object介紹

方法說接收的引數obj可以使str型別,可以是乙個模組,甚至是乙個類。

from flask import

flask

)print

#輸出結果,是乙個類

'flask.config.config

'>

class

config(dict):

def__init__(self, root_path, defaults=none):

dict.

__init__(self, defaults or

{}) self.root_path =root_path

#讀取配置的方法

def from_envvar(self, variable_name, silent=false):

pass

def from_pyfile(self, filename, silent=false):

pass

deffrom_object(self, obj):

pass

def from_json(self, filename, silent=false):

pass

pass

先來看看from_object()方法的原始碼:

deffrom_object(self, obj):

if isinstance(obj, string_types): #判斷obj是否是str型別

obj = import_string(obj) #如果是str型別,就根據這個字串匯入物件

for key in dir(obj): #遍歷obj的所有值

ifkey.isupper():

self[key] = getattr(obj, key) #self指的就是config例項本身,通過getattr取出對應的值進行

從原始碼可以看出,from_object()方法說接收的引數obj可以使str型別,可以是乙個模組,甚至是乙個類。

我們先嘗試一下是乙個模組的情況,建立乙個settings.py模組,內容如下:

debug =false

testing = false

這裡只寫了兩個配置,你可以寫更多,無所謂。怎麼使用呢?

from flask importflask

importsettings

輸出:debug: true

testing: true

a: 123

當obj是乙個字串時:

from flask importflask

輸出:debug: true

testing: true

a: 123

如果obj是乙個類時,我們修改一下settings.py,如下:

classconfig(object):

debug =false

testing =false

database_uri = 'sqlite://memory:'

classproductionconfig(config):

database_uri = 'mysql://user@localhost/foo'

classdevelopmentconfig(config):

debug =true

classtestingconfig(config):

testing = true

在settings.py模組中,我們定義了多個類,首先是config類,這個類定義的是預設配置,其他類都繼承config類,每乙個之類代表一種配置,如果需要子類中可以覆寫config,如果不覆寫則使用config中的預設配置。怎麼使用呢?

from flask importflask

importsettings

輸出:debug: false

testing: false

database_uri: mysql://user@localhost/foo

其他幾種載入方式都在原部落格中講述,且原博主文章質量很高,講解通熟易懂,排版清晰明朗,已關注原博主,建議看到的小夥伴關注。

Flask的專案配置1

在專案開發中,新建乙個manage.py的管理檔案,在manage.py做flask的相關的配置 使用工具pycharm,為了方便管理,將下列配置檔案進行拆包處理 from flask import flask from flask sqlalchemy import sqlalchemy 匯入和f...

Flask專案結構

專案排版 首先建立專案目錄 mkdir flask tutorial cd flask tutorial接下來按照前一篇講過的安裝flask步驟進行安裝,並新建乙個虛擬環境。flask應用可以簡單到使用乙個單檔案,例如hello.py from flask import flask defhello...

flask專案安裝

flask誕生於2010年,是armin ronacher 人名 用 python 語言基於 werkzeug 工具箱編寫的輕量級web開發框架。flask 本身相當於乙個核心,其他幾乎所有的功能都要用到擴充套件 郵件擴充套件flask mail,使用者認證flask login,資料庫flask ...