Flask中的一些問題的初步彙總一
阿新 • • 發佈:2018-12-26
首先,很高興能在這裡寫上自己對於Flask微框架的一些小問題與見解。喜歡的請看看,不喜歡的輕噴。
1.遭遇UnicodeDecodeError: ‘utf-8’ codec can’t decode
那麼在遇到這種情況,應該是自己的檔案目錄為中文,會不識別,比如自己的計算機名為中文,所以檔案目錄對於咱們應該都是英文,在low點兒,拼音,切記,不要用中文!
2.json編碼在網頁顯示為ascii碼
解決這類問題,對於新手來說,就會很煩惱。那麼需要py頁中輸入指定的程式碼,那麼還有很多種解決方法。下邊會簡單的介紹幾種常用的方法。
3.cookie和session的簡單原理
在Flask的框架中,自己已經封裝了 cookie的respons,request 有儲存就有讀取及刪除,拿購物車來舉例,在我們登陸的時候會有之前在購物車存放的物品,也就是說在一個地方為我們儲存了這些資料。前提有一個是要你登陸之後才能看到自己的購物車。
cookie對應的是client,session對應的是server。 也就是說,要在伺服器上登入你對應的賬戶,才能看到你自己在購物車新增的物品。但是物品那麼多,不能都存在伺服器上,資料量太大會讓伺服器搬家的。
4.Flask中的繼承和包含
為了程式碼的重用性,我們使用繼承模板。還有包含模板,我用我的理解簡單介紹一下,他們的用法不相同,卻又有類似之處,
在訪問頁面的時候,最上邊會有導航的資訊,也就是要跳轉到哪,實現路由的訪問,那麼每一頁中我們為了統一效果,是不是就可以將之前的頁面樣式拿來使用。這就涉及到了繼承,以及包含。
在繼承的時候,會使用 block 關鍵字。記住,想要現實效果,別忘了在Py檔案中匯入資料,引入頁面,那麼就有了被繼承的概念。誰繼承誰。又是誰被誰繼承,所以還有個關鍵字,就是extends
繼承是將完整的模板放到另一個頁面,另一個頁面中不能有相同的html模板,包含是將做好的小模組,放入已經設計好的模板中,二者正好相反!
下邊的為載入配置的方法
# 是在py檔案中直接配置的。 app.config['JSON_AS_ASCII'] = False debug開啟模式 app.config['DEBUG'] = True # 第二種方式 # 從外部引入配置檔案,用於載入,也就是需要新建立一個ini配置檔案 config.ini # 內部程式碼就倆行 DEBUG = True JSON_AS_ASCII = False # 再回到原來的檔案引入 app.config.from_pyfile('config.ini') # 第三種方式是配置環境變數。 # # C:\Users\自己的路徑,我找的是絕對路徑 \www\web\config.ini 從環境變數中來配置載入 # 我的是在win-10下搭建的 # 計算機-屬性-更改設定-高階-環境變數-新建 那麼第一行你需要起名,第二行需要複製路徑,也就是上邊的路徑 # 回到py檔案中。 app.config.from_envvar('app_config') # 這裡注意在檔案中匯入的是字串。 # 第四種方式 # 建立一個配置類 其實就是第一種方法,只是在類中封裝 class Config(object): DEBUG = True JSON_AS_ASCII = False # 那麼在呼叫這個類名。就可以了 app.config.from_object(Config)