1. 程式人生 > 實用技巧 >from_object用法。# 通過配置檔案切換測試或者生產環境的配置。from_object這個方法需要傳進去一個物件,配置檔案中類的屬性需要和需要配置的config的屬性名稱一致。

from_object用法。# 通過配置檔案切換測試或者生產環境的配置。from_object這個方法需要傳進去一個物件,配置檔案中類的屬性需要和需要配置的config的屬性名稱一致。

#setting檔案程式碼

class DebugConfig(object):
    DEBUG = True
    SECRET_KEY = "@3#!!#!<EL#"
    PERMANENT_SESSION_LIFETIME = 3600
    SESSION_COOKIE_NAME = "I am DEBUG seesion"
    OLD = "OLD"
    BOY = "BOY"


class TestConfig(object):
    TESTING = True
    SECRET_KEY = "我是一個生產環境的加密金鑰"
    PERMANENT_SESSION_LIFETIME 
= 15 SESSION_COOKIE_NAME = "TestConfig" OLD = "OLDS" BOY = "BOYS"
#初始化例項化引數
#Flask物件配置
from flask import Flask,render_template,send_file,session
import os
#比如模版存放路徑名字起錯了不是templates的話,我們又不想將錯誤的模版名字更正,我們可以在初始化中重新指定模版路徑、這樣就可以了
#static_folder預設存放靜態檔案資料夾static,static_folder可以更改靜態檔案存放目錄.
#預設值是static_url_path是我們訪問改檔案的url路徑
app = Flask(__name__,template_folder="templates",static_folder="image",static_url_path="/image") # app.debug=True # # app.config={} # #DEBUG:編輯程式碼,自動重啟,Log資訊最低。錯誤資訊透傳 # #TESTING無限接近與線上環境,不會自動重啟,Log資訊info及以上。錯誤資訊透傳 # #SECRET_KEY金鑰,開啟seesion需要配置它 # app.config['SECRET_KEY']="@3#!!#!<EL#" #這個和app.secret_key效果都一樣。但是app.config['SECRET_KEY']="@3#!!#!<EL#"這個格式效率高,編碼麻煩。
# # app.secret_key="!@#$%^" # #seesion的生命週期 # app.config['PERMANENT_SESSION_LIFETIME']=15 #單位是秒 # #SESSION_COOKIE_NAME存放在cookie瀏覽器中seesion的名稱,可以修改seesion名稱。 # app.config['SESSION_COOKIE_NAME']="I am not seesion" # 通過配置檔案切換測試或者生產環境的配置。from_object這個方法需要傳進去一個物件,配置檔案中類的屬性需要和需要配置的config的屬性名稱一致。 from flsakdemo1.setting import DebugConfig,TestConfig app.config.from_object(DebugConfig) # app.config.from_object(TestConfig) my_static_folder="image" my_static_url_path=None if not my_static_url_path: my_static_url_path=f"/{my_static_folder}" @app.route("/x") def x(): #開啟一個seesion,第一個字元絕對不能是空格,有空格的話序列話拿不到seesion session["user"]="123123" print(session.get("user")) return render_template("hom01.html") @app.route(f"/{my_static_url_path}/<filename>") def look4(filename): file_path = os.path.join(my_static_folder,filename) return send_file(file_path) if __name__ == '__main__': app.run()