1. 程式人生 > >Flask中的一些問題的初步彙總一

Flask中的一些問題的初步彙總一

首先,很高興能在這裡寫上自己對於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)