1. 程式人生 > >大型程式的結構(二)【配置選項config.py】

大型程式的結構(二)【配置選項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:推薦方式。它可以使你在切換網絡環境(比如在工作中和家裏)時,不需要修改虛擬主機的配