大型程式的結構(二)【配置選項config.py】
程式經常需要配置多個配置,如開發,測試和生產環境使用不同的資料庫。
不在使用hello.py的簡單的字典狀結構配置,而使用層次結構的配置類。
flasky/config.py:程式的配置
import os
basedir = os.path.abspath(os.path.dirname(__file__))
###得到程式根目錄的位置(去掉最底層檔名)
###基類Config包含通用配置,子類分別定義專用的配置。
class Config:
SECRET_KEY = os.environ.get('SECRET_KEY') or 'hard to guess string'
###某些配置如敏感資訊可以從環境變數中匯入,系統也可提供一個預設值,以防環境中沒有定義。
SQLALCHEMY_COMMIT_ON_TEARDOWN = True
###配置物件中還有一個很有用的選項,即SQLALCHEMY_COMMIT_ON_TEARDOWN鍵,將其設為True時,每次請求結束後都會自動提交資料庫中的變動。
FLASKY_MAIL_SUBJECT_PREFIX = '[Flasky]'
###flask_mail的主題字首設定
FLASKY_MAIL_SENDER = '[email protected]'
###flask_mail的傳送者郵件設定
FLASKY_ADMIN = os.environ.get('FLASKY_ADMIN' )
###從環境中設定管理員的郵件地址,用於接收通知新使用者註冊郵件,這裡面的傳送者sender,接受者ADMIN都是自己。
@staticmethod
###一般來說,要使用某個類的方法,需要先例項化一個物件再呼叫方法。
###而使用'@staticmethod'或'@classmethod',就可以不需要例項化,直接類名.方法名()來呼叫。
###詳細請見另一個部落格。
def init_app(app):
pass
###配置類可以定義init_app()方法類,其引數是程式例項。
###在這個方法中。可以執行對當前環境的配置初始化。
###基類Config中的init_app()方法為空。
class DevelopmentConfig(Config):
DEBUG = True
###除錯模式開啟,不懂什麼意思。
MAIL_SERVER = 'smtp.qq.com'
MAIL_PORT = 25
MAIL_USE_TLS = True
MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD')
SQLALCHEMY_DATABASE_URI = os.environ.get('DEV_DATABASE_URL') or \
'sqlite:///' + os.path.join(basedir, 'data-dev.sqlite')
class TestingConfig(Config):
TESTING = True
SQLALCHEMY_DATABASE_URI = os.environ.get('TEST_DATABASE_URL') or \
'sqlite:///' + os.path.join(basedir, 'data_test.sqlite')
class ProductionConfig(Config):
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
'sqlite:///' + os.environ.get(basedir, 'data.sqlite')
config = {
'development': DevelopmentConfig
'testing': TestingConfig
'production': ProductionConfig
'default': DevelopmentConfig
}
###在這個配置指令碼末尾,config字典中註冊了不同的配置環境,而且還註冊了一個預設配置。
課外資料
配置處理
配置基礎
config 實際上繼承於字典,並且可以像修改字典一樣修改它:
app = Flask(__name__)
app.config['DEBUG'] = True
給定的配置值會被推送到 Flask 物件中,所以你可以在那裡讀寫它們:
app.debug = True
你可以使用 dict.update() 方法來一次性更新多個鍵:
app.config.update(
DEBUG=True,
SECRET_KEY='...'
)
內建的配置值
下列配置值是 Flask 內部使用的:
DEBUG 啟用/禁用除錯模式
TESTING 啟用/禁用測試模式
相關推薦
大型程式的結構(二)【配置選項config.py】
程式經常需要配置多個配置,如開發,測試和生產環境使用不同的資料庫。 不在使用hello.py的簡單的字典狀結構配置,而使用層次結構的配置類。 flasky/config.py:程式的配置 impo
PHP基礎入門(二)【PHP函數基礎】
就是 進行 size 自定義 取地址 代碼 功能 sha 有一種 PHP基礎入門(二)——函數基礎 了解 PHP基礎入門詳解(一) 後,給大家分享一下PHP的函數基礎。 這部分主要講的就是: 函數的聲明與使用、PHP中變量的作用域、靜態變量、函數的參數傳遞、變量函數
PostCSS自學筆記(二)【番外篇一】
利用PostCSS解決移動端REM適配問題 上一期有提到結合postcss-px2rem外掛來處理移動端適配的方案,以及相關的避坑方法,之後總覺得這個解決方案問題太多,也就誕生了另一套方案運用postcss-pxtorem外掛來進行處理。 那麼這期番外篇講的就是postcss-px2rem和
java基礎-初級(二)【面向物件與類】
目錄 2、面向物件與類 2.1 面向物件思想 2.2 類與物件 2.3 成員和區域性變數 2.4 匿名物件 2.5 類的訪問許可權修飾符 2.6 static關鍵字-靜態域、靜態
JavaWeb重修(二)【Idea 部署 Tomcat伺服器】
關於tomcat伺服器的一些配置,規範啊啥的先不慌寫,先在編譯環境裡用用tomcat伺服器,具體的tomcat伺服器的配置,規範啊啥的知識點先不介紹,先能把這個環境跑通。一、安裝IntelliJ IDE
vue實現首頁導航切換不同路由的方式(二)【使用vuex實現的】
stat from -c outer sed 效果圖 const line :after 1 <nav> 2 <!-- 導航欄 --> 3 <div class="indexN
【Kaggle-MNIST之路】自定義程式結構(七)
簡述 這一篇跟這個系列的其他文章不一樣,這個是重新安排下程式結構 結構如下: 其中model這個模型專門放模型就好了 model/init.py中不用寫就好了。 model/CNN.py中的內容 模型是基於之前的【Kaggle-MNIS
【資料結構】棧的儲存結構(二)雙端棧
雙端棧 雙端棧是為了更有效的利用棧的空間而產生的。 雙端棧是一種特殊的順序棧。 雙端棧適用於一組互補的資料。 雙端棧兩端為底,2個整形表示棧頂指標。 程式碼收穫 主要還是弄清雙端棧的結構。 棧的歸檔 #include <stdio.h> #
大二上期資料結構實驗記錄(二)【初版】C實現簡單一元多項式加減乘求導及代值計算(有借鑑刪改)
想要記錄自己程式設計思維的成長所以發到部落格,歡迎並且感激大家指出缺點和錯誤! 一、【實驗構思(Conceive)】 本次實驗要求是用C或C++語言設計並實現一個一元稀疏多項式的簡單計算器,要求是要有如下功能 1、輸入並建立多項式 2、輸出多項式,序列按指數降序
【python學習】新手基礎程式練習(二)
Ι 繼續上一節得內容,這裡主要是對各種知識的理解以及如何運用。 一、執行 Python 指令碼的兩種方式 1.把python執行檔案加到計算機的環境變數中,然後新建檔案把程式寫在新檔案裡,再通過cmd命令開啟命令提示符終端,輸入python + 檔名(路徑也要寫全)回車執行即可。 2.直接在命令列輸入
SpringBoot快速開發(二)【Banner配置】
在專案的src/main/resource下新建banner檔案,可自定義修改spring服務啟動時命令建立的SPRING字樣 一、banner定製 如下圖所示,將圖片(支援 gif 、png、jpeg等格式)或文字檔案放到src/main/resource目錄下,服務啟動時會將內
基於spring boot和mongodb打造一套完整的許可權架構(二)【MAVEN依賴以及相應配置】
在上一章我們已經新建好整個專案了,在本章我們將講解我們的這套許可權架構所需要的maven依賴以及相關的配置,大家開啟我們的pom.xml增加完maven依賴以後的配置檔案如下:<?xml version="1.0" encoding="UTF-8"?>
數據結構(二):線性表的使用原則以及鏈表的應用-稀疏矩陣的三元組表示
查找 triple 表的操作 結構 循環鏈表 循環 大於 ria 幫助 上一篇博文中主要總結線性表中的鏈式存儲結構實現,比方單向鏈表、循環鏈表。還通過對照鏈表和順序表的多項式的存儲表示。說明鏈表的長處。能夠參看上篇博文http://blog.csdn.net/lg125
數據結構(二)線性表——鏈表
erro urn 找到 頭結點 tee 存在 結構 strong 函數 通常情況下,鏈接可分為單鏈表、雙向鏈表和循環鏈表三種常用類型。 一、單鏈表基本操作的實現 使用鏈式存儲結構來實現的線性表稱為鏈表。首元結點、頭結點、頭指針、空指針。 1.單鏈表的類型定義 typede
循環結構(二)
更新 加速 color () 條件 使用 .... style 循環 for循環for(參數初始化;條件判斷;更新循環變量){ 循環操作;} 表達式全省略,無條件判斷,循環變量無改變應在循環體內設法結束循環,否則會造成死循環 break語句break:改變程序控制流
Nginx實用教程(二):配置文件入門
affinity type 服務 源碼編譯 設置時間 shutdown ber 可用 控制指令 Nginx配置文件結構 nginx配置文件由指令(directive)組成,指令分為兩種形式,簡單指令和區塊指令。 一條簡單指令由指令名、參數和結尾的分號(;)組成,例如:
Linux 系統目錄結構(二)
執行文件 icm sel 系統管理員 修改 tmp win 開始 通用 Linux 系統目錄結構 登錄系統後,在當前命令窗口下輸入命令: ls / 你會看到如下圖所示: 樹狀目錄結構: 以下是對這些目錄的解釋: /bin:bin是Binary的縮寫, 這個目錄存
(二)手動配置第一個HelloWorld程序
support ani tco 添加 man .sh 所有 creat 配置 上例的HelloWorld是由Android sutudio 自動生成的,現在我們手動來配置。 1. 重新創建工程 2. 創建空的Activity 生成的Main
第六章:循環結構(二)
結構 不執行 三種 表達式 成了 不改變 條件 運算符 步驟 第六章:循環結構(二) 一. for 循環 1.循環結構的四個組成部分 (1). 初始部分:設置循環的初始狀態,比如我們設置記錄循環次數的變量 i 為 0 . (2). 循環體:重復執行的代碼 .
linux學習(二)linux配置網卡以及常見網絡問題排查
library ifconf netmask logs 切換網絡 peer local 但是 src 實驗環境環境:mac,vmware fusion 一、常用的虛擬機網絡連接模式。 NAT:推薦方式。它可以使你在切換網絡環境(比如在工作中和家裏)時,不需要修改虛擬主機的配