模塊
- 模塊:scrapy.settings
- 類:SettingsAttributes BaseSettings Settings
SettingsAttributes
- 表示一個基本的屬性值,該值被賦予了優先級,使用set方法時,只有傳入優先級高於單前屬性值的優先級時纔會被賦值。
BaseSettings
關鍵attributes屬性,是一個字典,存儲每個name下的屬性值(SettingsAttributes或BaseSettings),重寫了以下方法,用於支持BaseSettings的各種操作,訪問BaseSettings對象就好像訪問attributes字典各個屬性值一樣。
- __getitem__
- __contains__ ( 支持 in self判斷)
- __delitem__
- __iter__
- __len__
關鍵frozen變量,對BaseSettings的修改操作進行鎖定,被鎖定的對象進行修改的話會拋出異常,提供了freeze方法,使得鎖定生效。
關鍵操作方法,作爲外部各種操作的接口
- get特定類型數據
- set \ setdict \ setmodule方法
- update 增加dict value支持
- delete
Settings
- 繼承自BaseSettings,初始化時加載默認配置,並且支持了配置文件中的dict屬性,作爲BaseSettings。使得scrapy加載配置時支持兩層嵌套:
- key = value and value != dict (value = string|int|…)
- key = value and values = dict (dictvalue = string|int|…)
心得
- 這個模塊簡直可以剝離出來,搞成一個通用的settings組件自己用。。
- 支持優先級覆蓋
- 支持字典嵌套
- 支持配置鎖定
- 通用settings對象方法
souce code
init.py”>https://github.com/chenxilinsidney/scrapy/blob/master/scrapy/settings/init.py