我們接續前一篇的內容,今天要將 Flex 版型建立起來,並完成 logger.py
口罩查詢系統 Github 連結
又來到建立 Flex 的時間了XDD
一樣來到 Flex Messge Simulator 建立 Carousel 或是 Bubble
因為 Carousel 是包含多個 Bubble ,所以只需要建立一個版型即可
目標成果如下
當然,也希望大家可以自己嘗試自己玩玩看
挑一張喜歡的圖片放進去
在 aspectRatio
的部分選擇適當的比例
因為我選的圖片是沒有背景顏色的,所以我在這裡設定了 backgroundColor
首先是標題
接下來的區塊都會另外用 horizontal Box 隔開,之後方便塞入資料
而架構都相同,每個 Box 裡面存放兩個 text
一個是資料名稱,一個是資料內容
最後要在 Footer 建立一個 Button
這次要使用 Postback Action ,用來判斷是否要回傳地圖資訊
現在我們已經完成 Flex 版型設計囉~
接下來一樣找到右上角的 View as JSON
我們只需要將 contents
裡面的一個區段複製起來就可以囉~
將剛剛複製起來的檔案放到 data/json/Bubble.json
而 data/json/Card.json
的部分如下
{
"type":"carousel",
"contents":[
]
}
在開發專案的時候,常常會遇到 Bug
透過建立 log ,可以更方便了解哪裡出現問題
首先在 MAPPING
設定了各種類型訊息的顏色
在 python 中如果要輸出單行有顏色的字,可以用 \033[{顏色ID}m{字串}\033[0m
如果要完更多的話,可以參考這篇CSDN
import logging
from copy import copy
from logging import Formatter
MAPPING = {
'DEBUG': 37, # white
'INFO': 36, # cyan
'WARNING': 33, # yellow
'ERROR': 31, # red
'CRITICAL': 41, # white on red bg
}
PREFIX = '\033['
SUFFIX = '\033[0m'
class ColoredFormatter(Formatter):
def __init__(self, patern):
Formatter.__init__(self, patern)
def format(self, record):
colored_record = copy(record)
levelname = colored_record.levelname
seq = MAPPING.get(levelname, 37) # default white
colored_levelname = ('{0}{1}m{2}{3}') \
.format(PREFIX, seq, levelname, SUFFIX)
colored_record.levelname = colored_levelname
return Formatter.format(self, colored_record)
# Create top level logger
logger = logging.getLogger("root")
# Add console handler using our custom ColoredFormatter
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
cf = ColoredFormatter("[%(name)s][%(levelname)s] %(message)s")
ch.setFormatter(cf)
logger.addHandler(ch)
最後將 log 結果輸出到 log.log
# Add file handler
fh = logging.FileHandler('log.log')
fh.setLevel(logging.DEBUG)
ff = logging.Formatter(
'[%(asctime)s] - [%(name)s] - [%(levelname)s] - %(message)s (%(filename)s:%(lineno)d)'
)
fh.setFormatter(ff)
logger.addHandler(fh)
# Set log level
logger.setLevel(logging.DEBUG)
if __name__ == '__main__':
logger.debug('A debug message')
logger.info('An info message')
logger.warning('Something is not right.')
logger.error('A Major error has happened.')
logger.critical('Fatal error. Cannot continue')
到這邊,我們就順利建立好 logger.py 囉~
在下一篇,我們會將最後的步驟完成
python 輸出顏色的字是真的很棒
而且透過顏色,很快就可以分辨訊息到底是什麼類型
下一篇終於要讓系統跑起來啦!
希望各位玩得開心~
LINE Message Simulator
CSDN python 輸出顏色
口罩查詢系統 Github 連結