Browsed by
Category: Python

使用 Pytest 進行單元測試

使用 Pytest 進行單元測試

本文整理了我在 PyCon TW 2021 年投稿的 Tutorial 分享 – 使用 Pytest 進行單元測試

內容大綱如下:

我也為了這個分享錄製了相對應的 live demo 影片,提供有興趣的朋友參考。

如何在 PyCharm IDE 中 debug Flask App

如何在 PyCharm IDE 中 debug Flask App

由於 Flask 官方網頁中執行 app 的方法是採用 flask command line

 
$ export FLASK_APP=hello 
$ flask run 

PyCharm Community 是直接調用 Python 執行 script,若要PyCharm IDE 中調用 flask command line 就必須要做一些 work around 設定才能執行。Flask 官方的說明 [PyCharm Integration]在Mac上可以用 PyCharm 執行Flask App,

另外要利用 PyCharm 的 debug 功能要再做一些額外的設定。可以參考 Miguel Grinberg 的教學說明 [Setting Up a Flask Application in PyCharm]。

但要在 Window 10 中的 PyCharm Community Debug 還要使用一些小 Trick。可以參考 StackOverflow 這個討論串 [How to run Flask CLI from within PyCharm under Windows]。

其實,最簡單的方法是你購買 PyCharm Professional, 那可以直接建立一個 Flask Server Configuration [Run/Debug Configuration: Flask Server]

在Windows系統 Python 3.6環境無痛安裝 face-recognition

在Windows系統 Python 3.6環境無痛安裝 face-recognition

最近開始了一個人臉辨識的專案,上網搜尋後 face_recognition 應該是最多人採用的入門方案。

但你若是依照 github repo 上的說明 想在 MS Windows 作業系統安裝 dlib 以及 opencv 套件,你大概會跟我一樣踩到地雷,好幾天搞不定。

後來再 Google 一下網路其它人的分享[1, 2],發現其實在 Python 3.6 的環境根本是可以無痛安裝!

Read More Read More

使用 Python3 進行物件導向程式設計(1)

使用 Python3 進行物件導向程式設計(1)

簡介

物件導向程式設計(Object-oriented programming, OOP)是一種具有物件概念的程式編程典範(programming paradigm)[1]。

OOP 透過把系統視為由許多彼此互動的物件所組成,使用OO技術所設計的系統一般來說可提高可了解性可修改性

舉一個例子,我們可以將一家公司的人員建模(modeling) 成為一個 Person 的物件,一個 Person 可以有‘ID’, ‘Name’, ‘Address’, ‘Salary’ 等屬性;另外還可能有 ‘Raise_Salary’ (調薪) 的動作,會去更改底薪的數值。

Read More Read More

設定 Flask 中 SQLAlchemy SQL log on/off

設定 Flask 中 SQLAlchemy SQL log on/off

在 Flask-SQLAlchemy 中有一個 configuration key ‘SQLALCHEMY_ECHO’ 可以開關 SQLAlchemy Engine執行SQL 指令時是否 log 到 stderr[1]

但由於我程式中也用了以下指令設定 ‘sqlalchemy.engine’ 的 log level [2]

logging.getLogger(‘sqlalchemy.engine’).setLevel(log.INFO)

因此當我將 SQLALCHEMY_ECHO設為 False 時,程式還是會持續 log SQL指令,找了一下才發現是以上的log level 的設定問題。

另外還發現了將 logger ‘sqlalchemy.engine’ 設為 ‘log.INFO’ 所 log 的訊息會比僅將 SQLALCHEMY_ECHO設為 True 時會要多,因此這二者還是有一些細微的差別

[1]http://flask-sqlalchemy.pocoo.org/2.2/config/
[2]http://docs.sqlalchemy.org/en/latest/core/engines.html

Python的學習資源

Python的學習資源

線上

First Python Notebook

書籍

Think Python 2e

Think Python 2e 簡中版

Flask

The Flask Mega-Tutorial : 這是個作者的Flask教材是經典,想學Flask看這個一定不會錯!

Flask 入门教程:Pallets Team 成員李輝(Grey Li)所編的入門教學,他也是《Flask Web 开发实战》的作者。

Refactoring

PyCon.DE 2017 Yenny Cheung – Technical Lessons Learned from Pythonic Refactoring

Brett Slatkin – Refactoring Python: Why and how to restructure your code – PyCon 2016

Online Video Tutorial

The Ultimate List of Python YouTube Channels